https://www.kaggle.com/techzizou/labeled-mask-dataset-yolo-darknet
The dataset has individual images and the corresponding boudning box detail for each file in txt format
from google.colab import drive
import os
import zipfile
import urllib3
import numpy as np
import cv2
import shutil
import random
import matplotlib.pyplot as plt
import pandas as pd
MOUNT='/content/drive/'
PROJECT_PATH = "/content/drive/My Drive/face_mask_detection"
ZIP_FILE_NAME='archive.zip'
DATA_FOLDER='face_mask_data'
URL='https://www.kaggle.com/techzizou/labeled-mask-dataset-yolo-darknet/download'
IMAGE_FILE_EXTENSION='.jpg'
ANNOT_FILE_EXTENSION='.txt'
TEST_SIZE=100
VALIDATION_SIZE=300
NO_OF_CLASSES=2
NAMES =['MASK', 'NO MASK']
YAML_FILE='mask_detection.yaml'
PERFORMANCE_FILE_LOC="yolov5/runs/train/exp"
drive.mount(MOUNT)
Drive already mounted at /content/drive/; to attempt to forcibly remount, call drive.mount("/content/drive/", force_remount=True).
os.chdir(PROJECT_PATH)
Check the GPU allocated
gpu_info = !nvidia-smi
gpu_info = '\n'.join(gpu_info)
if gpu_info.find('failed') >= 0:
print('Not connected to a GPU')
else:
print(gpu_info)
Tue Dec 14 07:48:03 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.44 Driver Version: 460.32.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla P100-PCIE... Off | 00000000:00:04.0 Off | 0 |
| N/A 40C P0 27W / 250W | 0MiB / 16280MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
install the OIDV4 toolkit. clone from git
!git clone https://github.com/EscVM/OIDv4_ToolKit.git
Cloning into 'OIDv4_ToolKit'... remote: Enumerating objects: 422, done. remote: Total 422 (delta 0), reused 0 (delta 0), pack-reused 422 Receiving objects: 100% (422/422), 34.08 MiB | 16.02 MiB/s, done. Resolving deltas: 100% (146/146), done.
!pip3 install -r OIDv4_ToolKit/requirements.txt
Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from -r OIDv4_ToolKit/requirements.txt (line 1)) (1.1.5)
Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from -r OIDv4_ToolKit/requirements.txt (line 2)) (1.19.5)
Collecting awscli
Downloading awscli-1.22.24-py3-none-any.whl (3.8 MB)
|████████████████████████████████| 3.8 MB 7.7 MB/s
Requirement already satisfied: urllib3 in /usr/local/lib/python3.7/dist-packages (from -r OIDv4_ToolKit/requirements.txt (line 5)) (1.24.3)
Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from -r OIDv4_ToolKit/requirements.txt (line 7)) (4.62.3)
Requirement already satisfied: opencv-python in /usr/local/lib/python3.7/dist-packages (from -r OIDv4_ToolKit/requirements.txt (line 9)) (4.1.2.30)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->-r OIDv4_ToolKit/requirements.txt (line 1)) (2018.9)
Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas->-r OIDv4_ToolKit/requirements.txt (line 1)) (2.8.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas->-r OIDv4_ToolKit/requirements.txt (line 1)) (1.15.0)
Collecting botocore==1.23.24
Downloading botocore-1.23.24-py3-none-any.whl (8.4 MB)
|████████████████████████████████| 8.4 MB 26.4 MB/s
Requirement already satisfied: PyYAML<5.5,>=3.10 in /usr/local/lib/python3.7/dist-packages (from awscli->-r OIDv4_ToolKit/requirements.txt (line 3)) (3.13)
Collecting colorama<0.4.4,>=0.2.5
Downloading colorama-0.4.3-py2.py3-none-any.whl (15 kB)
Collecting s3transfer<0.6.0,>=0.5.0
Downloading s3transfer-0.5.0-py3-none-any.whl (79 kB)
|████████████████████████████████| 79 kB 8.1 MB/s
Collecting docutils<0.16,>=0.10
Downloading docutils-0.15.2-py3-none-any.whl (547 kB)
|████████████████████████████████| 547 kB 50.3 MB/s
Collecting rsa<4.8,>=3.1.2
Downloading rsa-4.7.2-py3-none-any.whl (34 kB)
Collecting jmespath<1.0.0,>=0.7.1
Downloading jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
Collecting urllib3
Downloading urllib3-1.26.7-py2.py3-none-any.whl (138 kB)
|████████████████████████████████| 138 kB 52.4 MB/s
Requirement already satisfied: pyasn1>=0.1.3 in /usr/local/lib/python3.7/dist-packages (from rsa<4.8,>=3.1.2->awscli->-r OIDv4_ToolKit/requirements.txt (line 3)) (0.4.8)
Installing collected packages: urllib3, jmespath, botocore, s3transfer, rsa, docutils, colorama, awscli
Attempting uninstall: urllib3
Found existing installation: urllib3 1.24.3
Uninstalling urllib3-1.24.3:
Successfully uninstalled urllib3-1.24.3
Attempting uninstall: rsa
Found existing installation: rsa 4.8
Uninstalling rsa-4.8:
Successfully uninstalled rsa-4.8
Attempting uninstall: docutils
Found existing installation: docutils 0.17.1
Uninstalling docutils-0.17.1:
Successfully uninstalled docutils-0.17.1
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
requests 2.23.0 requires urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1, but you have urllib3 1.26.7 which is incompatible.
datascience 0.10.6 requires folium==0.2.1, but you have folium 0.8.3 which is incompatible.
Successfully installed awscli-1.22.24 botocore-1.23.24 colorama-0.4.3 docutils-0.15.2 jmespath-0.10.0 rsa-4.7.2 s3transfer-0.5.0 urllib3-1.26.7
!git clone https://github.com/ultralytics/yolov5
Cloning into 'yolov5'... remote: Enumerating objects: 10200, done. remote: Total 10200 (delta 0), reused 0 (delta 0), pack-reused 10200 Receiving objects: 100% (10200/10200), 10.46 MiB | 7.17 MiB/s, done. Resolving deltas: 100% (7065/7065), done.
!pip install -U -r yolov5/requirements.txt
Requirement already satisfied: matplotlib>=3.2.2 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 4)) (3.2.2)
Collecting matplotlib>=3.2.2
Downloading matplotlib-3.5.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (11.2 MB)
|████████████████████████████████| 11.2 MB 8.4 MB/s
Requirement already satisfied: numpy>=1.18.5 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 5)) (1.19.5)
Collecting numpy>=1.18.5
Downloading numpy-1.21.4-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
|████████████████████████████████| 15.7 MB 39.7 MB/s
Requirement already satisfied: opencv-python>=4.1.2 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 6)) (4.1.2.30)
Collecting opencv-python>=4.1.2
Downloading opencv_python-4.5.4.60-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.3 MB)
|████████████████████████████████| 60.3 MB 1.6 MB/s
Requirement already satisfied: Pillow>=7.1.2 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 7)) (7.1.2)
Collecting Pillow>=7.1.2
Downloading Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
|████████████████████████████████| 3.1 MB 33.1 MB/s
Collecting PyYAML>=5.3.1
Downloading PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (596 kB)
|████████████████████████████████| 596 kB 47.4 MB/s
Requirement already satisfied: requests>=2.23.0 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 9)) (2.23.0)
Collecting requests>=2.23.0
Downloading requests-2.26.0-py2.py3-none-any.whl (62 kB)
|████████████████████████████████| 62 kB 866 kB/s
Requirement already satisfied: scipy>=1.4.1 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 10)) (1.4.1)
Collecting scipy>=1.4.1
Downloading scipy-1.7.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (38.1 MB)
|████████████████████████████████| 38.1 MB 1.5 MB/s
Requirement already satisfied: torch>=1.7.0 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 11)) (1.10.0+cu111)
Requirement already satisfied: torchvision>=0.8.1 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 12)) (0.11.1+cu111)
Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 13)) (4.62.3)
Requirement already satisfied: tensorboard>=2.4.1 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 16)) (2.7.0)
Requirement already satisfied: pandas>=1.1.4 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 20)) (1.1.5)
Collecting pandas>=1.1.4
Downloading pandas-1.3.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.3 MB)
|████████████████████████████████| 11.3 MB 39.0 MB/s
Requirement already satisfied: seaborn>=0.11.0 in /usr/local/lib/python3.7/dist-packages (from -r yolov5/requirements.txt (line 21)) (0.11.2)
Collecting thop
Downloading thop-0.0.31.post2005241907-py3-none-any.whl (8.7 kB)
Requirement already satisfied: pyparsing>=2.2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=3.2.2->-r yolov5/requirements.txt (line 4)) (3.0.6)
Collecting fonttools>=4.22.0
Downloading fonttools-4.28.3-py3-none-any.whl (884 kB)
|████████████████████████████████| 884 kB 51.9 MB/s
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=3.2.2->-r yolov5/requirements.txt (line 4)) (21.3)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=3.2.2->-r yolov5/requirements.txt (line 4)) (2.8.2)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=3.2.2->-r yolov5/requirements.txt (line 4)) (0.11.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=3.2.2->-r yolov5/requirements.txt (line 4)) (1.3.2)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests>=2.23.0->-r yolov5/requirements.txt (line 9)) (2021.10.8)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests>=2.23.0->-r yolov5/requirements.txt (line 9)) (1.26.7)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests>=2.23.0->-r yolov5/requirements.txt (line 9)) (2.10)
Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.7/dist-packages (from requests>=2.23.0->-r yolov5/requirements.txt (line 9)) (2.0.8)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch>=1.7.0->-r yolov5/requirements.txt (line 11)) (3.10.0.2)
Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (1.8.0)
Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (0.37.0)
Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (1.0.1)
Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (1.35.0)
Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (3.3.6)
Requirement already satisfied: setuptools>=41.0.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (57.4.0)
Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (0.6.1)
Requirement already satisfied: absl-py>=0.4 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (0.12.0)
Requirement already satisfied: grpcio>=1.24.3 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (1.42.0)
Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (0.4.6)
Requirement already satisfied: protobuf>=3.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (3.17.3)
Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=1.1.4->-r yolov5/requirements.txt (line 20)) (2018.9)
Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from absl-py>=0.4->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (1.15.0)
Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (4.2.4)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (0.2.8)
Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (4.7.2)
Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.7/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (1.3.0)
Requirement already satisfied: importlib-metadata>=4.4 in /usr/local/lib/python3.7/dist-packages (from markdown>=2.6.8->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (4.8.2)
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata>=4.4->markdown>=2.6.8->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (3.6.0)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.7/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (0.4.8)
Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.7/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.4.1->-r yolov5/requirements.txt (line 16)) (3.1.1)
Installing collected packages: requests, Pillow, numpy, fonttools, scipy, pandas, matplotlib, thop, PyYAML, opencv-python
Attempting uninstall: requests
Found existing installation: requests 2.23.0
Uninstalling requests-2.23.0:
Successfully uninstalled requests-2.23.0
Attempting uninstall: Pillow
Found existing installation: Pillow 7.1.2
Uninstalling Pillow-7.1.2:
Successfully uninstalled Pillow-7.1.2
Attempting uninstall: numpy
Found existing installation: numpy 1.19.5
Uninstalling numpy-1.19.5:
Successfully uninstalled numpy-1.19.5
Attempting uninstall: scipy
Found existing installation: scipy 1.4.1
Uninstalling scipy-1.4.1:
Successfully uninstalled scipy-1.4.1
Attempting uninstall: pandas
Found existing installation: pandas 1.1.5
Uninstalling pandas-1.1.5:
Successfully uninstalled pandas-1.1.5
Attempting uninstall: matplotlib
Found existing installation: matplotlib 3.2.2
Uninstalling matplotlib-3.2.2:
Successfully uninstalled matplotlib-3.2.2
Attempting uninstall: PyYAML
Found existing installation: PyYAML 3.13
Uninstalling PyYAML-3.13:
Successfully uninstalled PyYAML-3.13
Attempting uninstall: opencv-python
Found existing installation: opencv-python 4.1.2.30
Uninstalling opencv-python-4.1.2.30:
Successfully uninstalled opencv-python-4.1.2.30
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
yellowbrick 1.3.post1 requires numpy<1.20,>=1.16.0, but you have numpy 1.21.4 which is incompatible.
google-colab 1.0.0 requires pandas~=1.1.0; python_version >= "3.0", but you have pandas 1.3.5 which is incompatible.
google-colab 1.0.0 requires requests~=2.23.0, but you have requests 2.26.0 which is incompatible.
datascience 0.10.6 requires folium==0.2.1, but you have folium 0.8.3 which is incompatible.
awscli 1.22.24 requires PyYAML<5.5,>=3.10, but you have pyyaml 6.0 which is incompatible.
albumentations 0.1.12 requires imgaug<0.2.7,>=0.2.5, but you have imgaug 0.2.9 which is incompatible.
Successfully installed Pillow-8.4.0 PyYAML-6.0 fonttools-4.28.3 matplotlib-3.5.1 numpy-1.21.4 opencv-python-4.5.4.60 pandas-1.3.5 requests-2.26.0 scipy-1.7.3 thop-0.0.31.post2005241907
with zipfile.ZipFile(ZIP_FILE_NAME, "r") as z:
z.extractall(PROJECT_PATH+"/"+DATA_FOLDER)
!ls
archive.zip face_mask_detection_model.ipynb yolov5 face_mask_data OIDv4_ToolKit 'yolov5_mask detection'
os.mkdir (DATA_FOLDER+"/"+'train')
os.mkdir(DATA_FOLDER+"/"+'validation')
os.mkdir(DATA_FOLDER+"/"+'test')
file_names=[]
for file in os.listdir(DATA_FOLDER+"/obj"):
if file.endswith(IMAGE_FILE_EXTENSION):
file_names.append(file)
print (len(file_names), " images found")
1510 images found
print (file_names)
['unmasked (1384).jpg', 'unmasked (1385).jpg', 'unmasked (1386).jpg', 'unmasked (1387).jpg', 'unmasked (1388).jpg', 'unmasked (1389).jpg', 'unmasked (1390).jpg', 'unmasked (1391).jpg', 'unmasked (1392).jpg', 'unmasked (1393).jpg', 'unmasked (1394).jpg', 'unmasked (1395).jpg', 'unmasked (1396).jpg', 'unmasked (1397).jpg', 'unmasked (1398).jpg', 'unmasked (1399).jpg', 'unmasked (1400).jpg', 'unmasked (1401).jpg', 'unmasked (1402).jpg', 'unmasked (1403).jpg', 'unmasked (1404).jpg', 'unmasked (1405).jpg', 'unmasked (1406).jpg', 'unmasked (1407).jpg', 'unmasked (1408).jpg', 'unmasked (1409).jpg', 'unmasked (1410).jpg', 'unmasked (1411).jpg', 'unmasked (1412).jpg', 'unmasked (1413).jpg', 'unmasked (1414).jpg', 'unmasked (1415).jpg', 'unmasked (1416).jpg', 'unmasked (1417).jpg', 'unmasked (1418).jpg', 'unmasked (1419).jpg', 'unmasked (1420).jpg', 'unmasked (1421).jpg', 'unmasked (1422).jpg', 'unmasked (1424).jpg', 'unmasked (1425).jpg', 'unmasked (1426).jpg', 'unmasked (1427).jpg', 'unmasked (1428).jpg', 'unmasked (1429).jpg', 'unmasked (1430).jpg', 'unmasked (1432).jpg', 'unmasked (1433).jpg', 'unmasked (1434).jpg', 'unmasked (1435).jpg', 'unmasked (1436).jpg', 'unmasked (1437).jpg', 'unmasked (1438).jpg', 'unmasked (1439).jpg', 'unmasked (1440).jpg', 'unmasked (1441).jpg', 'unmasked (1442).jpg', 'unmasked (1443).jpg', 'unmasked (1444).jpg', 'unmasked (1445).jpg', 'unmasked (1446).jpg', 'unmasked (1447).jpg', 'unmasked (1448).jpg', 'unmasked (1449).jpg', 'unmasked (1450).jpg', 'unmasked (1451).jpg', 'unmasked (1452).jpg', 'unmasked (1453).jpg', 'unmasked (1454).jpg', 'unmasked (1455).jpg', 'unmasked (1456).jpg', 'unmasked (1457).jpg', 'unmasked (1458).jpg', 'unmasked (1459).jpg', 'unmasked (1460).jpg', 'unmasked (1461).jpg', 'unmasked (1462).jpg', 'unmasked (1463).jpg', 'unmasked (1464).jpg', 'unmasked (1465).jpg', 'unmasked (1466).jpg', 'unmasked (1467).jpg', 'unmasked (1468).jpg', 'unmasked (1469).jpg', 'unmasked (1470).jpg', 'unmasked (1471).jpg', 'unmasked (1472).jpg', 'unmasked (1473).jpg', 'unmasked (1475).jpg', 'unmasked (1476).jpg', 'unmasked (1477).jpg', 'unmasked (1478).jpg', 'unmasked (1479).jpg', 'unmasked (1480).jpg', 'unmasked (1481).jpg', 'unmasked (1482).jpg', 'unmasked (1483).jpg', 'unmasked (1484).jpg', 'unmasked (1485).jpg', 'unmasked (1486).jpg', 'unmasked (1487).jpg', 'unmasked (1488).jpg', 'unmasked (1489).jpg', 'unmasked (1490).jpg', 'unmasked (1491).jpg', 'unmasked (1492).jpg', 'unmasked (1493).jpg', 'unmasked (1494).jpg', 'unmasked (1495).jpg', 'unmasked (1496).jpg', 'unmasked (1497).jpg', 'unmasked (1498).jpg', 'unmasked (1499).jpg', 'unmasked (1500).jpg', 'unmasked (1501).jpg', 'unmasked (1502).jpg', 'unmasked (1503).jpg', 'unmasked (1504).jpg', 'unmasked (1505).jpg', 'unmasked (1506).jpg', 'unmasked (1507).jpg', 'unmasked (1508).jpg', 'unmasked (1509).jpg', 'unmasked (1510).jpg', 'unmasked (1511).jpg', 'unmasked (1512).jpg', 'unmasked (1513).jpg', 'unmasked (1514).jpg', 'unmasked (1515).jpg', 'unmasked (1516).jpg', 'unmasked (1517).jpg', 'unmasked (1518).jpg', 'unmasked (1519).jpg', 'unmasked (1520).jpg', 'unmasked (1521).jpg', 'unmasked (1522).jpg', 'unmasked (1523).jpg', 'unmasked (1524).jpg', 'unmasked (1525).jpg', 'unmasked (1526).jpg', 'unmasked (1527).jpg', 'unmasked (1528).jpg', 'unmasked (1529).jpg', 'unmasked (1530).jpg', 'unmasked (1531).jpg', 'unmasked (1532).jpg', 'unmasked (1533).jpg', 'unmasked (1534).jpg', 'unmasked (1535).jpg', 'unmasked (1536).jpg', 'unmasked (1537).jpg', 'unmasked (1538).jpg', 'unmasked (1539).jpg', 'unmasked (1540).jpg', 'unmasked (1541).jpg', 'unmasked (1542).jpg', 'unmasked (1543).jpg', 'unmasked (1544).jpg', 'unmasked (1545).jpg', 'unmasked (1546).jpg', 'unmasked (1547).jpg', 'unmasked (1549).jpg', 'unmasked (1550).jpg', 'unmasked (1551).jpg', 'unmasked (1552).jpg', 'unmasked (1553).jpg', 'unmasked (1554).jpg', 'unmasked (1555).jpg', 'unmasked (1556).jpg', 'unmasked (1557).jpg', 'unmasked (1558).jpg', 'unmasked (1559).jpg', 'unmasked (1560).jpg', 'unmasked (1561).jpg', 'unmasked (1562).jpg', 'unmasked (1563).jpg', 'unmasked (1564).jpg', 'unmasked (1565).jpg', 'unmasked (1566).jpg', 'unmasked (1567).jpg', 'unmasked (1568).jpg', 'unmasked (1569).jpg', 'unmasked (1570).jpg', 'unmasked (1571).jpg', 'unmasked (1572).jpg', 'unmasked (1573).jpg', 'unmasked (1574).jpg', 'unmasked (1575).jpg', 'unmasked (1576).jpg', 'unmasked (1577).jpg', 'unmasked (1578).jpg', 'unmasked (1579).jpg', 'unmasked (1580).jpg', 'unmasked (1581).jpg', 'unmasked (1582).jpg', 'unmasked (1583).jpg', 'unmasked (1584).jpg', 'unmasked (1585).jpg', 'unmasked (1586).jpg', 'unmasked (1587).jpg', 'unmasked (1588).jpg', 'unmasked (1591).jpg', 'unmasked (1592).jpg', 'unmasked (1593).jpg', 'unmasked (1594).jpg', 'unmasked (1595).jpg', 'unmasked (1596).jpg', 'unmasked (1597).jpg', 'unmasked (1598).jpg', 'unmasked (1599).jpg', 'unmasked (1600).jpg', 'unmasked (1601).jpg', 'unmasked (1602).jpg', 'unmasked (1603).jpg', 'unmasked (1604).jpg', 'unmasked (1605).jpg', 'unmasked (1606).jpg', 'unmasked (1607).jpg', 'unmasked (1609).jpg', 'unmasked (1610).jpg', 'unmasked (1611).jpg', 'unmasked (1612).jpg', 'unmasked (1613).jpg', 'unmasked (1614).jpg', 'unmasked (1615).jpg', 'unmasked (1616).jpg', 'unmasked (1617).jpg', 'unmasked (1618).jpg', 'unmasked (1619).jpg', 'unmasked (1620).jpg', 'unmasked (1621).jpg', 'unmasked (1622).jpg', 'unmasked (1623).jpg', 'unmasked (1624).jpg', 'unmasked (1625).jpg', 'unmasked (1626).jpg', 'unmasked (1627).jpg', 'unmasked (1628).jpg', 'unmasked (1629).jpg', 'unmasked (1630).jpg', 'unmasked (1631).jpg', 'unmasked (1632).jpg', 'unmasked (1633).jpg', 'unmasked (1634).jpg', 'unmasked (1635).jpg', 'unmasked (1636).jpg', 'unmasked (1637).jpg', 'unmasked (1638).jpg', 'unmasked (1639).jpg', 'unmasked (1640).jpg', 'unmasked (1642).jpg', 'unmasked (1644).jpg', 'unmasked (1645).jpg', 'unmasked (1646).jpg', 'unmasked (1647).jpg', 'unmasked (1648).jpg', 'unmasked (1649).jpg', 'unmasked (1650).jpg', 'unmasked (1651).jpg', 'unmasked (1652).jpg', 'unmasked (1653).jpg', 'unmasked (1654).jpg', 'unmasked (1655).jpg', 'unmasked (1656).jpg', 'unmasked (1659).jpg', 'unmasked (1662).jpg', 'unmasked (1663).jpg', 'unmasked (1669).jpg', 'unmasked (1670).jpg', 'unmasked (1671).jpg', 'unmasked (1672).jpg', 'unmasked (1673).jpg', 'unmasked (1674).jpg', 'unmasked (1677).jpg', 'unmasked (1680).jpg', 'unmasked (1682).jpg', 'unmasked (1683).jpg', 'unmasked (1688).jpg', 'unmasked (1690).jpg', 'unmasked (1697).jpg', 'unmasked (1699).jpg', 'unmasked (1708).jpg', 'unmasked (1709).jpg', 'unmasked (1714).jpg', 'unmasked (1716).jpg', 'unmasked (1725).jpg', 'unmasked (1730).jpg', 'unmasked (1732).jpg', 'unmasked (1733).jpg', 'unmasked (1739).jpg', 'unmasked (1741).jpg', 'unmasked (1746).jpg', 'unmasked (1748).jpg', 'unmasked (1752).jpg', 'unmasked (1758).jpg', 'unmasked (1761).jpg', 'unmasked (1762).jpg', 'unmasked (1763).jpg', 'unmasked (1764).jpg', 'unmasked (1769).jpg', 'unmasked (1777).jpg', 'unmasked (1778).jpg', 'unmasked (1785).jpg', 'unmasked (1788).jpg', 'unmasked (1792).jpg', 'unmasked (1793).jpg', 'unmasked (1794).jpg', 'unmasked (1795).jpg', 'unmasked (1796).jpg', 'unmasked (1800).jpg', 'unmasked (1803).jpg', 'unmasked (1807).jpg', 'unmasked (1813).jpg', 'unmasked (1815).jpg', 'unmasked (1819).jpg', 'unmasked (1822).jpg', 'unmasked (1824).jpg', 'unmasked (1827).jpg', 'unmasked (1834).jpg', 'unmasked (1835).jpg', 'unmasked (1839).jpg', 'unmasked (1840).jpg', 'unmasked (1843).jpg', 'unmasked (1852).jpg', 'unmasked (1853).jpg', 'unmasked (1854).jpg', 'unmasked (1856).jpg', 'unmasked (1858).jpg', 'unmasked (1859).jpg', 'unmasked (1864).jpg', 'unmasked (1865).jpg', 'unmasked (1866).jpg', 'unmasked (1867).jpg', 'unmasked (1869).jpg', 'unmasked (1872).jpg', 'unmasked (1875).jpg', 'unmasked (1876).jpg', 'unmasked (1879).jpg', 'unmasked (1882).jpg', 'unmasked (1885).jpg', 'unmasked (1886).jpg', 'unmasked (1888).jpg', 'unmasked (1891).jpg', 'unmasked (1894).jpg', 'unmasked (1897).jpg', 'unmasked (1899).jpg', 'unmasked (1900).jpg', 'unmasked (1903).jpg', 'unmasked (1904).jpg', 'unmasked (1907).jpg', 'unmasked (1912).jpg', 'with_mask (1).jpg', 'with_mask (10).jpg', 'with_mask (100).jpg', 'with_mask (101).jpg', 'with_mask (102).jpg', 'with_mask (103).jpg', 'with_mask (104).jpg', 'with_mask (105).jpg', 'with_mask (11).jpg', 'with_mask (12).jpg', 'with_mask (13).jpg', 'with_mask (14).jpg', 'with_mask (15).jpg', 'with_mask (16).jpg', 'with_mask (17).jpg', 'with_mask (18).jpg', 'with_mask (19).jpg', 'with_mask (2).jpg', 'with_mask (20).jpg', 'with_mask (21).jpg', 'with_mask (22).jpg', 'with_mask (23).jpg', 'with_mask (24).jpg', 'with_mask (25).jpg', 'with_mask (26).jpg', 'with_mask (27).jpg', 'with_mask (28).jpg', 'with_mask (29).jpg', 'with_mask (3).jpg', 'with_mask (30).jpg', 'with_mask (31).jpg', 'with_mask (32).jpg', 'with_mask (33).jpg', 'with_mask (34).jpg', 'with_mask (35).jpg', 'with_mask (36).jpg', 'with_mask (37).jpg', 'with_mask (38).jpg', 'with_mask (39).jpg', 'with_mask (4).jpg', 'with_mask (40).jpg', 'with_mask (41).jpg', 'with_mask (42).jpg', 'with_mask (43).jpg', 'with_mask (44).jpg', 'with_mask (45).jpg', 'with_mask (46).jpg', 'with_mask (47).jpg', 'with_mask (48).jpg', 'with_mask (49).jpg', 'with_mask (5).jpg', 'with_mask (50).jpg', 'with_mask (51).jpg', 'with_mask (52).jpg', 'with_mask (53).jpg', 'with_mask (54).jpg', 'with_mask (55).jpg', 'with_mask (56).jpg', 'with_mask (57).jpg', 'with_mask (58).jpg', 'with_mask (59).jpg', 'with_mask (6).jpg', 'with_mask (60).jpg', 'with_mask (61).jpg', 'with_mask (62).jpg', 'with_mask (63).jpg', 'with_mask (64).jpg', 'with_mask (65).jpg', 'with_mask (66).jpg', 'with_mask (67).jpg', 'with_mask (68).jpg', 'with_mask (69).jpg', 'with_mask (7).jpg', 'with_mask (70).jpg', 'with_mask (71).jpg', 'with_mask (72).jpg', 'with_mask (73).jpg', 'with_mask (74).jpg', 'with_mask (75).jpg', 'with_mask (76).jpg', 'with_mask (77).jpg', 'with_mask (78).jpg', 'with_mask (79).jpg', 'with_mask (8).jpg', 'with_mask (80).jpg', 'with_mask (81).jpg', 'with_mask (82).jpg', 'with_mask (83).jpg', 'with_mask (84).jpg', 'with_mask (85).jpg', 'with_mask (86).jpg', 'with_mask (87).jpg', 'with_mask (88).jpg', 'with_mask (89).jpg', 'with_mask (9).jpg', 'with_mask (90).jpg', 'with_mask (91).jpg', 'with_mask (92).jpg', 'with_mask (93).jpg', 'with_mask (94).jpg', 'with_mask (95).jpg', 'with_mask (96).jpg', 'with_mask (97).jpg', 'with_mask (98).jpg', 'with_mask (99).jpg', 'with_maska (1).jpg', 'with_maska (10).jpg', 'with_maska (11).jpg', 'with_maska (12).jpg', 'with_maska (13).jpg', 'with_maska (14).jpg', 'with_maska (15).jpg', 'with_maska (16).jpg', 'with_maska (17).jpg', 'with_maska (18).jpg', 'with_maska (19).jpg', 'with_maska (2).jpg', 'with_maska (20).jpg', 'with_maska (21).jpg', 'with_maska (22).jpg', 'with_maska (23).jpg', 'with_maska (24).jpg', 'with_maska (25).jpg', 'with_maska (26).jpg', 'with_maska (27).jpg', 'with_maska (28).jpg', 'with_maska (29).jpg', 'with_maska (3).jpg', 'with_maska (4).jpg', 'with_maska (5).jpg', 'with_maska (6).jpg', 'with_maska (7).jpg', 'with_maska (8).jpg', 'with_maska (9).jpg', 'with_maskb (1).jpg', 'with_maskb (10).jpg', 'with_maskb (11).jpg', 'with_maskb (12).jpg', 'with_maskb (13).jpg', 'with_maskb (14).jpg', 'with_maskb (15).jpg', 'with_maskb (2).jpg', 'with_maskb (3).jpg', 'with_maskb (4).jpg', 'with_maskb (5).jpg', 'with_maskb (6).jpg', 'with_maskb (7).jpg', 'with_maskb (8).jpg', 'with_maskb (9).jpg', 'masked (1360).jpg', 'masked (1361).jpg', 'masked (1362).jpg', 'masked (1363).jpg', 'masked (1364).jpg', 'masked (1365).jpg', 'masked (1366).jpg', 'masked (1367).jpg', 'masked (1368).jpg', 'masked (1369).jpg', 'masked (1370).jpg', 'masked (1371).jpg', 'masked (1372).jpg', 'masked (1373).jpg', 'masked (1375).jpg', 'masked (1376).jpg', 'masked (1377).jpg', 'masked (1378).jpg', 'masked (1379).jpg', 'masked (1380).jpg', 'masked (1381).jpg', 'masked (1382).jpg', 'masked (1383).jpg', 'masked (1384).jpg', 'masked (1385).jpg', 'masked (1386).jpg', 'masked (1387).jpg', 'masked (1388).jpg', 'masked (1389).jpg', 'masked (1390).jpg', 'masked (1391).jpg', 'masked (1392).jpg', 'masked (1393).jpg', 'masked (1394).jpg', 'masked (1395).jpg', 'masked (1396).jpg', 'masked (1397).jpg', 'masked (1398).jpg', 'masked (1399).jpg', 'masked (1400).jpg', 'masked (1401).jpg', 'masked (1402).jpg', 'masked (1403).jpg', 'masked (1404).jpg', 'masked (1405).jpg', 'masked (1406).jpg', 'masked (1407).jpg', 'masked (1408).jpg', 'masked (1409).jpg', 'masked (1410).jpg', 'masked (1411).jpg', 'masked (1412).jpg', 'masked (1413).jpg', 'masked (1414).jpg', 'masked (1415).jpg', 'masked (1416).jpg', 'masked (1417).jpg', 'masked (1418).jpg', 'masked (1419).jpg', 'masked (1420).jpg', 'masked (1421).jpg', 'masked (1422).jpg', 'masked (1423).jpg', 'masked (1424).jpg', 'masked (1425).jpg', 'masked (1426).jpg', 'masked (1427).jpg', 'masked (1428).jpg', 'masked (1429).jpg', 'masked (1430).jpg', 'masked (1431).jpg', 'masked (1432).jpg', 'masked (1433).jpg', 'masked (1434).jpg', 'masked (1435).jpg', 'masked (1436).jpg', 'masked (1437).jpg', 'masked (1438).jpg', 'masked (1439).jpg', 'masked (1440).jpg', 'masked (1441).jpg', 'masked (1442).jpg', 'masked (1443).jpg', 'masked (1444).jpg', 'masked (1445).jpg', 'masked (1446).jpg', 'masked (1447).jpg', 'masked (1448).jpg', 'masked (1449).jpg', 'masked (1450).jpg', 'masked (1451).jpg', 'masked (1452).jpg', 'masked (1453).jpg', 'masked (1454).jpg', 'masked (1455).jpg', 'masked (1456).jpg', 'masked (1457).jpg', 'masked (1458).jpg', 'masked (1459).jpg', 'masked (1460).jpg', 'masked (1461).jpg', 'masked (1462).jpg', 'masked (1463).jpg', 'masked (1464).jpg', 'masked (1465).jpg', 'masked (1466).jpg', 'masked (1467).jpg', 'masked (1468).jpg', 'masked (1469).jpg', 'masked (1470).jpg', 'masked (1471).jpg', 'masked (1472).jpg', 'masked (1473).jpg', 'masked (1474).jpg', 'masked (1475).jpg', 'masked (1476).jpg', 'masked (1477).jpg', 'masked (1478).jpg', 'masked (1479).jpg', 'masked (1480).jpg', 'masked (1481).jpg', 'masked (1482).jpg', 'masked (1483).jpg', 'masked (1484).jpg', 'masked (1485).jpg', 'masked (1486).jpg', 'masked (1487).jpg', 'masked (1488).jpg', 'masked (1489).jpg', 'masked (1490).jpg', 'masked (1491).jpg', 'masked (1492).jpg', 'masked (1493).jpg', 'masked (1494).jpg', 'masked (1495).jpg', 'masked (1496).jpg', 'masked (1497).jpg', 'masked (1498).jpg', 'masked (1499).jpg', 'masked (1500).jpg', 'masked (1501).jpg', 'masked (1502).jpg', 'masked (1503).jpg', 'masked (1504).jpg', 'masked (1505).jpg', 'masked (1506).jpg', 'masked (1507).jpg', 'masked (1508).jpg', 'masked (1509).jpg', 'masked (1510).jpg', 'masked (1511).jpg', 'masked (1512).jpg', 'masked (1513).jpg', 'masked (1514).jpg', 'masked (1515).jpg', 'masked (1516).jpg', 'masked (1517).jpg', 'masked (1518).jpg', 'masked (1519).jpg', 'masked (1520).jpg', 'masked (1521).jpg', 'masked (1522).jpg', 'masked (1523).jpg', 'masked (1524).jpg', 'masked (1525).jpg', 'masked (1526).jpg', 'masked (1527).jpg', 'masked (1528).jpg', 'masked (1529).jpg', 'masked (1530).jpg', 'masked (1531).jpg', 'masked (1532).jpg', 'masked (1533).jpg', 'masked (1534).jpg', 'masked (1535).jpg', 'masked (1536).jpg', 'masked (1537).jpg', 'masked (1538).jpg', 'masked (1539).jpg', 'masked (1540).jpg', 'masked (1541).jpg', 'masked (1542).jpg', 'masked (1543).jpg', 'masked (1544).jpg', 'masked (1545).jpg', 'masked (1546).jpg', 'masked (1547).jpg', 'masked (1548).jpg', 'masked (1549).jpg', 'masked (1550).jpg', 'masked (1551).jpg', 'masked (1552).jpg', 'masked (1553).jpg', 'masked (1554).jpg', 'masked (1555).jpg', 'masked (1556).jpg', 'masked (1557).jpg', 'masked (1558).jpg', 'masked (1559).jpg', 'masked (1560).jpg', 'masked (1561).jpg', 'masked (1562).jpg', 'masked (1563).jpg', 'masked (1564).jpg', 'masked (1565).jpg', 'masked (1566).jpg', 'masked (1567).jpg', 'masked (1568).jpg', 'masked (1569).jpg', 'masked (1570).jpg', 'masked (1571).jpg', 'masked (1572).jpg', 'masked (1573).jpg', 'masked (1574).jpg', 'masked (1575).jpg', 'masked (1576).jpg', 'masked (1577).jpg', 'masked (1578).jpg', 'masked (1579).jpg', 'masked (1580).jpg', 'masked (1581).jpg', 'masked (1582).jpg', 'masked (1583).jpg', 'masked (1584).jpg', 'masked (1585).jpg', 'masked (1586).jpg', 'masked (1587).jpg', 'masked (1588).jpg', 'masked (1589).jpg', 'masked (1590).jpg', 'masked (1591).jpg', 'masked (1592).jpg', 'masked (1593).jpg', 'masked (1594).jpg', 'masked (1595).jpg', 'masked (1596).jpg', 'masked (1597).jpg', 'masked (1598).jpg', 'masked (1599).jpg', 'masked (1600).jpg', 'masked (1601).jpg', 'masked (1602).jpg', 'masked (1603).jpg', 'masked (1604).jpg', 'masked (1605).jpg', 'masked (1606).jpg', 'masked (1607).jpg', 'masked (1608).jpg', 'masked (1609).jpg', 'masked (1610).jpg', 'masked (1611).jpg', 'masked (1612).jpg', 'masked (1613).jpg', 'masked (1614).jpg', 'masked (1615).jpg', 'masked (1616).jpg', 'masked (1617).jpg', 'masked (1618).jpg', 'masked (1619).jpg', 'masked (1620).jpg', 'masked (1621).jpg', 'masked (1622).jpg', 'masked (1623).jpg', 'masked (1624).jpg', 'masked (1625).jpg', 'masked (1626).jpg', 'masked (1627).jpg', 'masked (1628).jpg', 'masked (1629).jpg', 'masked (1630).jpg', 'masked (1631).jpg', 'masked (1632).jpg', 'masked (1633).jpg', 'masked (1634).jpg', 'masked (1635).jpg', 'masked (1636).jpg', 'masked (1637).jpg', 'masked (1638).jpg', 'masked (1639).jpg', 'masked (1640).jpg', 'masked (1641).jpg', 'masked (1642).jpg', 'masked (1643).jpg', 'masked (1644).jpg', 'masked (1645).jpg', 'masked (1646).jpg', 'masked (1647).jpg', 'masked (1648).jpg', 'masked (1649).jpg', 'masked (1650).jpg', 'masked (1651).jpg', 'masked (1652).jpg', 'masked (1653).jpg', 'masked (1654).jpg', 'masked (1655).jpg', 'masked (1656).jpg', 'masked (1657).jpg', 'masked (1658).jpg', 'masked (1659).jpg', 'masked (1660).jpg', 'masked (1661).jpg', 'masked (1662).jpg', 'masked (1663).jpg', 'masked (1664).jpg', 'masked (1665).jpg', 'masked (1666).jpg', 'masked (1667).jpg', 'masked (1668).jpg', 'masked (1669).jpg', 'masked (1670).jpg', 'masked (1671).jpg', 'masked (1672).jpg', 'masked (1673).jpg', 'masked (1674).jpg', 'masked (1675).jpg', 'masked (1676).jpg', 'masked (1677).jpg', 'masked (1678).jpg', 'masked (1680).jpg', 'masked (1681).jpg', 'masked (1682).jpg', 'masked (1683).jpg', 'masked (1684).jpg', 'masked (1685).jpg', 'masked (1686).jpg', 'masked (1687).jpg', 'masked (1688).jpg', 'masked (1690).jpg', 'masked (1691).jpg', 'masked (1692).jpg', 'masked (1693).jpg', 'masked (1694).jpg', 'masked (1695).jpg', 'masked (1696).jpg', 'masked (1697).jpg', 'masked (1698).jpg', 'masked (1699).jpg', 'masked (1700).jpg', 'masked (1701).jpg', 'masked (1702).jpg', 'masked (1703).jpg', 'masked (1861).jpg', 'masked (1862).jpg', 'masked (1863).jpg', 'masked (1864).jpg', 'masked (1865).jpg', 'masked (1866).jpg', 'masked (1867).jpg', 'masked (1868).jpg', 'masked (1869).jpg', 'masked (1870).jpg', 'masked (1871).jpg', 'masked (1872).jpg', 'masked (1873).jpg', 'masked (1874).jpg', 'masked (1875).jpg', 'masked (1876).jpg', 'masked (1877).jpg', 'masked (1878).jpg', 'masked (1879).jpg', 'masked (1880).jpg', 'masked (1881).jpg', 'masked (1882).jpg', 'masked (1883).jpg', 'masked (1884).jpg', 'masked (1885).jpg', 'masked (1886).jpg', 'masked (1887).jpg', 'masked (1888).jpg', 'masked (1889).jpg', 'masked (1890).jpg', 'masked (1891).jpg', 'masked (1892).jpg', 'masked (1893).jpg', 'masked (1894).jpg', 'masked (1895).jpg', 'masked (1896).jpg', 'masked (1897).jpg', 'masked (1898).jpg', 'masked (1899).jpg', 'masked (1900).jpg', 'masked (1901).jpg', 'masked (1902).jpg', 'masked (1903).jpg', 'masked (1904).jpg', 'masked (1905).jpg', 'masked (1906).jpg', 'masked (1907).jpg', 'masked (1908).jpg', 'masked (1909).jpg', 'masked (1910).jpg', 'masked (1911).jpg', 'masked (1912).jpg', 'masked (1913).jpg', 'masked (1914).jpg', 'masked (1915).jpg', 'masked (3).jpg', 'masked (4).jpg', 'masked (5).jpg', 'masked (6).jpg', 'masked (7).jpg', 'masked (8).jpg', 'masked (9).jpg', 'pra1.jpg', 'pra2.jpg', 'pra3.jpg', 'prajna.jpg', 'unmasked (1250).jpg', 'unmasked (1251).jpg', 'unmasked (1252).jpg', 'unmasked (1253).jpg', 'unmasked (1255).jpg', 'unmasked (1256).jpg', 'unmasked (1257).jpg', 'unmasked (1260).jpg', 'unmasked (1261).jpg', 'unmasked (1262).jpg', 'unmasked (1263).jpg', 'unmasked (1264).jpg', 'unmasked (1265).jpg', 'unmasked (1266).jpg', 'unmasked (1267).jpg', 'unmasked (1268).jpg', 'unmasked (1269).jpg', 'unmasked (1270).jpg', 'unmasked (1271).jpg', 'unmasked (1272).jpg', 'unmasked (1274).jpg', 'unmasked (1275).jpg', 'unmasked (1276).jpg', 'unmasked (1277).jpg', 'unmasked (1278).jpg', 'unmasked (1279).jpg', 'unmasked (1280).jpg', 'unmasked (1282).jpg', 'unmasked (1285).jpg', 'unmasked (1286).jpg', 'unmasked (1287).jpg', 'unmasked (1288).jpg', 'unmasked (1289).jpg', 'unmasked (1290).jpg', 'unmasked (1291).jpg', 'unmasked (1292).jpg', 'unmasked (1293).jpg', 'unmasked (1295).jpg', 'unmasked (1297).jpg', 'unmasked (1298).jpg', 'unmasked (1299).jpg', 'unmasked (1301).jpg', 'unmasked (1302).jpg', 'unmasked (1303).jpg', 'unmasked (1304).jpg', 'unmasked (1306).jpg', 'unmasked (1307).jpg', 'unmasked (1308).jpg', 'unmasked (1309).jpg', 'unmasked (1310).jpg', 'unmasked (1311).jpg', 'unmasked (1312).jpg', 'unmasked (1313).jpg', 'unmasked (1314).jpg', 'unmasked (1315).jpg', 'unmasked (1316).jpg', 'unmasked (1317).jpg', 'unmasked (1318).jpg', 'unmasked (1319).jpg', 'unmasked (1321).jpg', 'unmasked (1322).jpg', 'unmasked (1323).jpg', 'unmasked (1324).jpg', 'unmasked (1325).jpg', 'unmasked (1326).jpg', 'unmasked (1327).jpg', 'unmasked (1328).jpg', 'unmasked (1329).jpg', 'unmasked (1330).jpg', 'unmasked (1331).jpg', 'unmasked (1332).jpg', 'unmasked (1333).jpg', 'unmasked (1334).jpg', 'unmasked (1335).jpg', 'unmasked (1336).jpg', 'unmasked (1337).jpg', 'unmasked (1338).jpg', 'unmasked (1339).jpg', 'unmasked (1340).jpg', 'unmasked (1341).jpg', 'unmasked (1342).jpg', 'unmasked (1343).jpg', 'unmasked (1344).jpg', 'unmasked (1372).jpg', 'unmasked (1374).jpg', 'unmasked (1375).jpg', 'unmasked (1376).jpg', 'unmasked (1377).jpg', 'unmasked (1378).jpg', 'unmasked (1380).jpg', 'unmasked (1381).jpg', 'unmasked (1382).jpg', 'unmasked (1383).jpg', '107-with-mask.jpg', '108-with-mask.jpg', '109-with-mask.jpg', '11-with-mask.jpg', '110-with-mask.jpg', '111-with-mask.jpg', '112-with-mask.jpg', '113-with-mask.jpg', '114-with-mask.jpg', '115-with-mask.jpg', '116-with-mask.jpg', '117-with-mask.jpg', '118-with-mask.jpg', '119-with-mask.jpg', '12-with-mask.jpg', '120-with-mask.jpg', '121-with-mask.jpg', '122-with-mask.jpg', '123-with-mask.jpg', '124-with-mask.jpg', '125-with-mask.jpg', '126-with-mask.jpg', '127-with-mask.jpg', '128-with-mask.jpg', '129-with-mask.jpg', '13-with-mask.jpg', '131-with-mask.jpg', '132-with-mask.jpg', '132.jpg', '133-with-mask.jpg', '134-with-mask.jpg', '134.jpg', '135-with-mask.jpg', '136-with-mask.jpg', '137-with-mask.jpg', '137.jpg', '138-with-mask.jpg', '138.jpg', '139-with-mask.jpg', '14-with-mask.jpg', '140-with-mask.jpg', '141-with-mask.jpg', '144-with-mask.jpg', '146-with-mask.jpg', '147-with-mask.jpg', '148-with-mask.jpg', '148.jpg', '149.jpg', '150-with-mask.jpg', '151-with-mask.jpg', '151.jpg', '152-with-mask.jpg', '153-with-mask.jpg', '154-with-mask.jpg', '155-with-mask.jpg', '156-with-mask.jpg', '157-with-mask.jpg', '158-with-mask.jpg', '159-with-mask.jpg', '159.jpg', '160-with-mask.jpg', '161-with-mask.jpg', '162-with-mask.jpg', '163-with-mask.jpg', '165-with-mask.jpg', '167-with-mask.jpg', '168-with-mask.jpg', '169-with-mask.jpg', '169.jpg', '170-with-mask.jpg', '171-with-mask.jpg', '172-with-mask.jpg', '173-with-mask.jpg', '174-with-mask.jpg', '175-with-mask.jpg', '176-with-mask.jpg', '177-with-mask.jpg', '178.jpg', '179-with-mask.jpg', '180-with-mask.jpg', '181-with-mask.jpg', '182-with-mask.jpg', '183-with-mask.jpg', '184-with-mask.jpg', '185-with-mask.jpg', '186-with-mask.jpg', '187-with-mask.jpg', '189-with-mask.jpg', '190-with-mask.jpg', '192-with-mask.jpg', '193-with-mask.jpg', '194-with-mask.jpg', '195-with-mask.jpg', '195.jpg', '196-with-mask.jpg', '197-with-mask.jpg', '198-with-mask.jpg', '2-with-mask.jpg', '200-with-mask.jpg', '201-with-mask.jpg', '201.jpg', '202-with-mask.jpg', '203-with-mask.jpg', '204-with-mask.jpg', '205-with-mask.jpg', '206-with-mask.jpg', '207-with-mask.jpg', '209-with-mask.jpg', '211-with-mask.jpg', '212-with-mask.jpg', '214-with-mask.jpg', '215-with-mask.jpg', '217-with-mask.jpg', '218-with-mask.jpg', '219-with-mask.jpg', '221-with-mask.jpg', '222-with-mask.jpg', '223-with-mask.jpg', '224-with-mask.jpg', '225-with-mask.jpg', '227-with-mask.jpg', '228-with-mask.jpg', '229-with-mask.jpg', '231-with-mask.jpg', '232-with-mask.jpg', '233-with-mask.jpg', '234-with-mask.jpg', '235-with-mask.jpg', '236-with-mask.jpg', '237-with-mask.jpg', '238-with-mask.jpg', '239-with-mask.jpg', '240-with-mask.jpg', '241-with-mask.jpg', '242-with-mask.jpg', '243-with-mask.jpg', '244-with-mask.jpg', '245-with-mask.jpg', '246-with-mask.jpg', '251-with-mask.jpg', '252-with-mask.jpg', '253-with-mask.jpg', '254-with-mask.jpg', '256-with-mask.jpg', '257-with-mask.jpg', '259-with-mask.jpg', '26-with-mask.jpg', '260-with-mask.jpg', '261-with-mask.jpg', '262-with-mask.jpg', '263-with-mask.jpg', '267-with-mask.jpg', '268-with-mask.jpg', '269-with-mask.jpg', '27-with-mask.jpg', '270-with-mask.jpg', '272-with-mask.jpg', '273-with-mask.jpg', '274-with-mask.jpg', '275-with-mask.jpg', '276-with-mask.jpg', '277-with-mask.jpg', '278-with-mask.jpg', '279-with-mask.jpg', '281-with-mask.jpg', '282-with-mask.jpg', '283-with-mask.jpg', '284-with-mask.jpg', '285-with-mask.jpg', '286-with-mask.jpg', '287-with-mask.jpg', '288-with-mask.jpg', '289-with-mask.jpg', '29-with-mask.jpg', '290-with-mask.jpg', '291-with-mask.jpg', '293-with-mask.jpg', '294-with-mask.jpg', '295-with-mask.jpg', '296-with-mask.jpg', '298-with-mask.jpg', '299-with-mask.jpg', '3-with-mask.jpg', '30-with-mask.jpg', '301-with-mask.jpg', '302-with-mask.jpg', '303-with-mask.jpg', '304-with-mask.jpg', '305-with-mask.jpg', '306-with-mask.jpg', '307-with-mask.jpg', '308-with-mask.jpg', '309-with-mask.jpg', '31-with-mask.jpg', '311-with-mask.jpg', '313-with-mask.jpg', '314-with-mask.jpg', '315-with-mask.jpg', '316-with-mask.jpg', '317-with-mask.jpg', '318-with-mask.jpg', '319-with-mask.jpg', '32-with-mask.jpg', '322-with-mask.jpg', '323-with-mask.jpg', '324-with-mask.jpg', '325-with-mask.jpg', '326-with-mask.jpg', '327-with-mask.jpg', '33-with-mask.jpg', '330-with-mask.jpg', '331-with-mask.jpg', '332-with-mask.jpg', '332.jpg', '333-with-mask.jpg', '334-with-mask.jpg', '335-with-mask.jpg', '336-with-mask.jpg', '338-with-mask.jpg', '339-with-mask.jpg', '34-with-mask.jpg', '340-with-mask.jpg', '342-with-mask.jpg', '343-with-mask.jpg', '344-with-mask.jpg', '345-with-mask.jpg', '346-with-mask.jpg', '347-with-mask.jpg', '348-with-mask.jpg', '349-with-mask.jpg', '35-with-mask.jpg', '351-with-mask.jpg', '353-with-mask.jpg', '355-with-mask.jpg', '356-with-mask.jpg', '357-with-mask.jpg', '358-with-mask.jpg', '359-with-mask.jpg', '36-with-mask.jpg', '362-with-mask.jpg', '364-with-mask.jpg', '365-with-mask.jpg', '366-with-mask.jpg', '368-with-mask.jpg', '369-with-mask.jpg', '37-with-mask.jpg', '374-with-mask.jpg', '375-with-mask.jpg', '376-with-mask.jpg', '377-with-mask.jpg', '378-with-mask.jpg', '379-with-mask.jpg', '38-with-mask.jpg', '381-with-mask.jpg', '382-with-mask.jpg', '383-with-mask.jpg', '384-with-mask.jpg', '385-with-mask.jpg', '386-with-mask.jpg', '387-with-mask.jpg', '39-with-mask.jpg', '390-with-mask.jpg', '391-with-mask.jpg', '392-with-mask.jpg', '393-with-mask.jpg', '394-with-mask.jpg', '395-with-mask.jpg', '396-with-mask.jpg', '397-with-mask.jpg', '398-with-mask.jpg', '399-with-mask.jpg', '4-with-mask.jpg', '40-with-mask.jpg', '401-with-mask.jpg', '402-with-mask.jpg', '404-with-mask.jpg', '405-with-mask.jpg', '406-with-mask.jpg', '407-with-mask.jpg', '408-with-mask.jpg', '409-with-mask.jpg', '41-with-mask.jpg', '411-with-mask.jpg', '413-with-mask.jpg', '414-with-mask.jpg', '415-with-mask.jpg', '416-with-mask.jpg', '417-with-mask.jpg', '418-with-mask.jpg', '419-with-mask.jpg', '42-with-mask.jpg', '420-with-mask.jpg', '421-with-mask.jpg', '422-with-mask.jpg', '425-with-mask.jpg', '427-with-mask.jpg', '429-with-mask.jpg', '43-with-mask.jpg', '430-with-mask.jpg', '431-with-mask.jpg', '431.jpg', '432-with-mask.jpg', '433-with-mask.jpg', '434-with-mask.jpg', '435-with-mask.jpg', '436-with-mask.jpg', '438-with-mask.jpg', '439-with-mask.jpg', '440-with-mask.jpg', '441-with-mask.jpg', '442-with-mask.jpg', '443-with-mask.jpg', '444-with-mask.jpg', '445-with-mask.jpg', '446-with-mask.jpg', '447-with-mask.jpg', '448-with-mask.jpg', '449-with-mask.jpg', '45-with-mask.jpg', '450-with-mask.jpg', '451-with-mask.jpg', '452-with-mask.jpg', '453-with-mask.jpg', '454-with-mask.jpg', '455-with-mask.jpg', '456-with-mask.jpg', '457-with-mask.jpg', '458-with-mask.jpg', '459-with-mask.jpg', '46-with-mask.jpg', '460-with-mask.jpg', '461-with-mask.jpg', '462-with-mask.jpg', '463-with-mask.jpg', '464-with-mask.jpg', '466-with-mask.jpg', '467-with-mask.jpg', '47-with-mask.jpg', '471-with-mask.jpg', '472-with-mask.jpg', '473-with-mask.jpg', '474-with-mask.jpg', '475-with-mask.jpg', '476-with-mask.jpg', '477-with-mask.jpg', '478-with-mask.jpg', '479-with-mask.jpg', '48-with-mask.jpg', '480-with-mask.jpg', '481-with-mask.jpg', '49-with-mask.jpg', '49.jpg', '5-with-mask.jpg', '50-with-mask.jpg', '51-with-mask.jpg', '52-with-mask.jpg', '53-with-mask.jpg', '56-with-mask.jpg', '57-with-mask.jpg', '59-with-mask.jpg', '6-with-mask.jpg', '61-with-mask.jpg', '62-with-mask.jpg', '63.jpg', '64-with-mask.jpg', '65-with-mask.jpg', '67-with-mask.jpg', '68-with-mask.jpg', '7-with-mask.jpg', '70-with-mask.jpg', '71-with-mask.jpg', '72-with-mask.jpg', '73-with-mask.jpg', '74-with-mask.jpg', '75-with-mask.jpg', '76-with-mask.jpg', '77-with-mask.jpg', '78-with-mask.jpg', '79-with-mask.jpg', '8-with-mask.jpg', '80-with-mask.jpg', '81-with-mask.jpg', '82-with-mask.jpg', '83-with-mask.jpg', '84-with-mask.jpg', '85-with-mask.jpg', '86-with-mask.jpg', '88-with-mask.jpg', '89-with-mask.jpg', '9-with-mask.jpg', '91-with-mask.jpg', '92-with-mask.jpg', '93-with-mask.jpg', '94-with-mask.jpg', '96-with-mask.jpg', '97-with-mask.jpg', '98-with-mask.jpg', '99-with-mask.jpg', 'masked (10).jpg', 'masked (11).jpg', 'masked (1257).jpg', 'masked (1258).jpg', 'masked (1259).jpg', 'masked (1260).jpg', 'masked (1261).jpg', 'masked (1263).jpg', 'masked (1264).jpg', 'masked (1265).jpg', 'masked (1266).jpg', 'masked (1267).jpg', 'masked (1268).jpg', 'masked (1269).jpg', 'masked (1270).jpg', 'masked (1271).jpg', 'masked (1272).jpg', 'masked (1273).jpg', 'masked (1274).jpg', 'masked (1275).jpg', 'masked (1276).jpg', 'masked (1277).jpg', 'masked (1278).jpg', 'masked (1279).jpg', 'masked (1280).jpg', 'masked (1281).jpg', 'masked (1282).jpg', 'masked (1283).jpg', 'masked (1284).jpg', 'masked (1285).jpg', 'masked (1286).jpg', 'masked (1287).jpg', 'masked (1288).jpg', 'masked (1289).jpg', 'masked (1290).jpg', 'masked (1291).jpg', 'masked (1292).jpg', 'masked (1293).jpg', 'masked (1296).jpg', 'masked (1297).jpg', 'masked (1298).jpg', 'masked (1299).jpg', 'masked (1300).jpg', 'masked (1301).jpg', 'masked (1302).jpg', 'masked (1303).jpg', 'masked (1304).jpg', 'masked (1305).jpg', 'masked (1306).jpg', 'masked (1307).jpg', 'masked (1308).jpg', 'masked (1309).jpg', 'masked (1310).jpg', 'masked (1311).jpg', 'masked (1312).jpg', 'masked (1313).jpg', 'masked (1314).jpg', 'masked (1315).jpg', 'masked (1316).jpg', 'masked (1317).jpg', 'masked (1318).jpg', 'masked (1319).jpg', 'masked (1320).jpg', 'masked (1321).jpg', 'masked (1322).jpg', 'masked (1323).jpg', 'masked (1324).jpg', 'masked (1325).jpg', 'masked (1326).jpg', 'masked (1327).jpg', 'masked (1328).jpg', 'masked (1329).jpg', 'masked (1330).jpg', 'masked (1331).jpg', 'masked (1332).jpg', 'masked (1333).jpg', 'masked (1334).jpg', 'masked (1335).jpg', 'masked (1336).jpg', 'masked (1337).jpg', 'masked (1338).jpg', 'masked (1339).jpg', 'masked (1340).jpg', 'masked (1341).jpg', 'masked (1342).jpg', 'masked (1343).jpg', 'masked (1344).jpg', 'masked (1345).jpg', 'masked (1346).jpg', 'masked (1347).jpg', 'masked (1348).jpg', 'masked (1349).jpg', 'masked (1350).jpg', 'masked (1351).jpg', 'masked (1352).jpg', 'masked (1353).jpg', 'masked (1354).jpg', 'masked (1355).jpg', 'masked (1356).jpg', 'masked (1357).jpg', 'masked (1358).jpg', 'masked (1359).jpg', '0-with-mask.jpg', '0.jpg', '1-with-mask.jpg', '10-with-mask.jpg', '100-with-mask.jpg', '101-with-mask.jpg', '103-with-mask.jpg', '104-with-mask.jpg', '105-with-mask.jpg', '106-with-mask.jpg']
def masked_condition(file):
#masked_condition='with-mask' in file or 'with_mask' in file or 'with_maska' in file or 'with_maskb' in file or 'masked' in file and not 'unmasked' in file or 'pra' in file
file_exts=['with-mask','with_mask','with_maska','with_maskb','masked','pra']
msk_condition=False
for cond in file_exts:
msk_condition= msk_condition or cond in file
msk_condition=msk_condition and not 'unmasked' in file
return (msk_condition)
index=0
masked=[]
unmasked=[]
target=np.zeros(len(file_names),dtype=int)
for file in file_names:
if masked_condition(file):
masked.append(file)
target[index]=1
else:
unmasked.append(file)
index+=1
print (len(masked), 'images have masks')
print (len(unmasked), 'images do not have masks')
imb=round(100*len(masked)/len(file_names))
print ('imbalance level-> mask:unmasked :: ', imb, ":", 100-imb)
1049 images have masks 461 images do not have masks imbalance level-> mask:unmasked :: 69 : 31
print (masked)
['with_mask (1).jpg', 'with_mask (10).jpg', 'with_mask (100).jpg', 'with_mask (101).jpg', 'with_mask (102).jpg', 'with_mask (103).jpg', 'with_mask (104).jpg', 'with_mask (105).jpg', 'with_mask (11).jpg', 'with_mask (12).jpg', 'with_mask (13).jpg', 'with_mask (14).jpg', 'with_mask (15).jpg', 'with_mask (16).jpg', 'with_mask (17).jpg', 'with_mask (18).jpg', 'with_mask (19).jpg', 'with_mask (2).jpg', 'with_mask (20).jpg', 'with_mask (21).jpg', 'with_mask (22).jpg', 'with_mask (23).jpg', 'with_mask (24).jpg', 'with_mask (25).jpg', 'with_mask (26).jpg', 'with_mask (27).jpg', 'with_mask (28).jpg', 'with_mask (29).jpg', 'with_mask (3).jpg', 'with_mask (30).jpg', 'with_mask (31).jpg', 'with_mask (32).jpg', 'with_mask (33).jpg', 'with_mask (34).jpg', 'with_mask (35).jpg', 'with_mask (36).jpg', 'with_mask (37).jpg', 'with_mask (38).jpg', 'with_mask (39).jpg', 'with_mask (4).jpg', 'with_mask (40).jpg', 'with_mask (41).jpg', 'with_mask (42).jpg', 'with_mask (43).jpg', 'with_mask (44).jpg', 'with_mask (45).jpg', 'with_mask (46).jpg', 'with_mask (47).jpg', 'with_mask (48).jpg', 'with_mask (49).jpg', 'with_mask (5).jpg', 'with_mask (50).jpg', 'with_mask (51).jpg', 'with_mask (52).jpg', 'with_mask (53).jpg', 'with_mask (54).jpg', 'with_mask (55).jpg', 'with_mask (56).jpg', 'with_mask (57).jpg', 'with_mask (58).jpg', 'with_mask (59).jpg', 'with_mask (6).jpg', 'with_mask (60).jpg', 'with_mask (61).jpg', 'with_mask (62).jpg', 'with_mask (63).jpg', 'with_mask (64).jpg', 'with_mask (65).jpg', 'with_mask (66).jpg', 'with_mask (67).jpg', 'with_mask (68).jpg', 'with_mask (69).jpg', 'with_mask (7).jpg', 'with_mask (70).jpg', 'with_mask (71).jpg', 'with_mask (72).jpg', 'with_mask (73).jpg', 'with_mask (74).jpg', 'with_mask (75).jpg', 'with_mask (76).jpg', 'with_mask (77).jpg', 'with_mask (78).jpg', 'with_mask (79).jpg', 'with_mask (8).jpg', 'with_mask (80).jpg', 'with_mask (81).jpg', 'with_mask (82).jpg', 'with_mask (83).jpg', 'with_mask (84).jpg', 'with_mask (85).jpg', 'with_mask (86).jpg', 'with_mask (87).jpg', 'with_mask (88).jpg', 'with_mask (89).jpg', 'with_mask (9).jpg', 'with_mask (90).jpg', 'with_mask (91).jpg', 'with_mask (92).jpg', 'with_mask (93).jpg', 'with_mask (94).jpg', 'with_mask (95).jpg', 'with_mask (96).jpg', 'with_mask (97).jpg', 'with_mask (98).jpg', 'with_mask (99).jpg', 'with_maska (1).jpg', 'with_maska (10).jpg', 'with_maska (11).jpg', 'with_maska (12).jpg', 'with_maska (13).jpg', 'with_maska (14).jpg', 'with_maska (15).jpg', 'with_maska (16).jpg', 'with_maska (17).jpg', 'with_maska (18).jpg', 'with_maska (19).jpg', 'with_maska (2).jpg', 'with_maska (20).jpg', 'with_maska (21).jpg', 'with_maska (22).jpg', 'with_maska (23).jpg', 'with_maska (24).jpg', 'with_maska (25).jpg', 'with_maska (26).jpg', 'with_maska (27).jpg', 'with_maska (28).jpg', 'with_maska (29).jpg', 'with_maska (3).jpg', 'with_maska (4).jpg', 'with_maska (5).jpg', 'with_maska (6).jpg', 'with_maska (7).jpg', 'with_maska (8).jpg', 'with_maska (9).jpg', 'with_maskb (1).jpg', 'with_maskb (10).jpg', 'with_maskb (11).jpg', 'with_maskb (12).jpg', 'with_maskb (13).jpg', 'with_maskb (14).jpg', 'with_maskb (15).jpg', 'with_maskb (2).jpg', 'with_maskb (3).jpg', 'with_maskb (4).jpg', 'with_maskb (5).jpg', 'with_maskb (6).jpg', 'with_maskb (7).jpg', 'with_maskb (8).jpg', 'with_maskb (9).jpg', 'masked (1360).jpg', 'masked (1361).jpg', 'masked (1362).jpg', 'masked (1363).jpg', 'masked (1364).jpg', 'masked (1365).jpg', 'masked (1366).jpg', 'masked (1367).jpg', 'masked (1368).jpg', 'masked (1369).jpg', 'masked (1370).jpg', 'masked (1371).jpg', 'masked (1372).jpg', 'masked (1373).jpg', 'masked (1375).jpg', 'masked (1376).jpg', 'masked (1377).jpg', 'masked (1378).jpg', 'masked (1379).jpg', 'masked (1380).jpg', 'masked (1381).jpg', 'masked (1382).jpg', 'masked (1383).jpg', 'masked (1384).jpg', 'masked (1385).jpg', 'masked (1386).jpg', 'masked (1387).jpg', 'masked (1388).jpg', 'masked (1389).jpg', 'masked (1390).jpg', 'masked (1391).jpg', 'masked (1392).jpg', 'masked (1393).jpg', 'masked (1394).jpg', 'masked (1395).jpg', 'masked (1396).jpg', 'masked (1397).jpg', 'masked (1398).jpg', 'masked (1399).jpg', 'masked (1400).jpg', 'masked (1401).jpg', 'masked (1402).jpg', 'masked (1403).jpg', 'masked (1404).jpg', 'masked (1405).jpg', 'masked (1406).jpg', 'masked (1407).jpg', 'masked (1408).jpg', 'masked (1409).jpg', 'masked (1410).jpg', 'masked (1411).jpg', 'masked (1412).jpg', 'masked (1413).jpg', 'masked (1414).jpg', 'masked (1415).jpg', 'masked (1416).jpg', 'masked (1417).jpg', 'masked (1418).jpg', 'masked (1419).jpg', 'masked (1420).jpg', 'masked (1421).jpg', 'masked (1422).jpg', 'masked (1423).jpg', 'masked (1424).jpg', 'masked (1425).jpg', 'masked (1426).jpg', 'masked (1427).jpg', 'masked (1428).jpg', 'masked (1429).jpg', 'masked (1430).jpg', 'masked (1431).jpg', 'masked (1432).jpg', 'masked (1433).jpg', 'masked (1434).jpg', 'masked (1435).jpg', 'masked (1436).jpg', 'masked (1437).jpg', 'masked (1438).jpg', 'masked (1439).jpg', 'masked (1440).jpg', 'masked (1441).jpg', 'masked (1442).jpg', 'masked (1443).jpg', 'masked (1444).jpg', 'masked (1445).jpg', 'masked (1446).jpg', 'masked (1447).jpg', 'masked (1448).jpg', 'masked (1449).jpg', 'masked (1450).jpg', 'masked (1451).jpg', 'masked (1452).jpg', 'masked (1453).jpg', 'masked (1454).jpg', 'masked (1455).jpg', 'masked (1456).jpg', 'masked (1457).jpg', 'masked (1458).jpg', 'masked (1459).jpg', 'masked (1460).jpg', 'masked (1461).jpg', 'masked (1462).jpg', 'masked (1463).jpg', 'masked (1464).jpg', 'masked (1465).jpg', 'masked (1466).jpg', 'masked (1467).jpg', 'masked (1468).jpg', 'masked (1469).jpg', 'masked (1470).jpg', 'masked (1471).jpg', 'masked (1472).jpg', 'masked (1473).jpg', 'masked (1474).jpg', 'masked (1475).jpg', 'masked (1476).jpg', 'masked (1477).jpg', 'masked (1478).jpg', 'masked (1479).jpg', 'masked (1480).jpg', 'masked (1481).jpg', 'masked (1482).jpg', 'masked (1483).jpg', 'masked (1484).jpg', 'masked (1485).jpg', 'masked (1486).jpg', 'masked (1487).jpg', 'masked (1488).jpg', 'masked (1489).jpg', 'masked (1490).jpg', 'masked (1491).jpg', 'masked (1492).jpg', 'masked (1493).jpg', 'masked (1494).jpg', 'masked (1495).jpg', 'masked (1496).jpg', 'masked (1497).jpg', 'masked (1498).jpg', 'masked (1499).jpg', 'masked (1500).jpg', 'masked (1501).jpg', 'masked (1502).jpg', 'masked (1503).jpg', 'masked (1504).jpg', 'masked (1505).jpg', 'masked (1506).jpg', 'masked (1507).jpg', 'masked (1508).jpg', 'masked (1509).jpg', 'masked (1510).jpg', 'masked (1511).jpg', 'masked (1512).jpg', 'masked (1513).jpg', 'masked (1514).jpg', 'masked (1515).jpg', 'masked (1516).jpg', 'masked (1517).jpg', 'masked (1518).jpg', 'masked (1519).jpg', 'masked (1520).jpg', 'masked (1521).jpg', 'masked (1522).jpg', 'masked (1523).jpg', 'masked (1524).jpg', 'masked (1525).jpg', 'masked (1526).jpg', 'masked (1527).jpg', 'masked (1528).jpg', 'masked (1529).jpg', 'masked (1530).jpg', 'masked (1531).jpg', 'masked (1532).jpg', 'masked (1533).jpg', 'masked (1534).jpg', 'masked (1535).jpg', 'masked (1536).jpg', 'masked (1537).jpg', 'masked (1538).jpg', 'masked (1539).jpg', 'masked (1540).jpg', 'masked (1541).jpg', 'masked (1542).jpg', 'masked (1543).jpg', 'masked (1544).jpg', 'masked (1545).jpg', 'masked (1546).jpg', 'masked (1547).jpg', 'masked (1548).jpg', 'masked (1549).jpg', 'masked (1550).jpg', 'masked (1551).jpg', 'masked (1552).jpg', 'masked (1553).jpg', 'masked (1554).jpg', 'masked (1555).jpg', 'masked (1556).jpg', 'masked (1557).jpg', 'masked (1558).jpg', 'masked (1559).jpg', 'masked (1560).jpg', 'masked (1561).jpg', 'masked (1562).jpg', 'masked (1563).jpg', 'masked (1564).jpg', 'masked (1565).jpg', 'masked (1566).jpg', 'masked (1567).jpg', 'masked (1568).jpg', 'masked (1569).jpg', 'masked (1570).jpg', 'masked (1571).jpg', 'masked (1572).jpg', 'masked (1573).jpg', 'masked (1574).jpg', 'masked (1575).jpg', 'masked (1576).jpg', 'masked (1577).jpg', 'masked (1578).jpg', 'masked (1579).jpg', 'masked (1580).jpg', 'masked (1581).jpg', 'masked (1582).jpg', 'masked (1583).jpg', 'masked (1584).jpg', 'masked (1585).jpg', 'masked (1586).jpg', 'masked (1587).jpg', 'masked (1588).jpg', 'masked (1589).jpg', 'masked (1590).jpg', 'masked (1591).jpg', 'masked (1592).jpg', 'masked (1593).jpg', 'masked (1594).jpg', 'masked (1595).jpg', 'masked (1596).jpg', 'masked (1597).jpg', 'masked (1598).jpg', 'masked (1599).jpg', 'masked (1600).jpg', 'masked (1601).jpg', 'masked (1602).jpg', 'masked (1603).jpg', 'masked (1604).jpg', 'masked (1605).jpg', 'masked (1606).jpg', 'masked (1607).jpg', 'masked (1608).jpg', 'masked (1609).jpg', 'masked (1610).jpg', 'masked (1611).jpg', 'masked (1612).jpg', 'masked (1613).jpg', 'masked (1614).jpg', 'masked (1615).jpg', 'masked (1616).jpg', 'masked (1617).jpg', 'masked (1618).jpg', 'masked (1619).jpg', 'masked (1620).jpg', 'masked (1621).jpg', 'masked (1622).jpg', 'masked (1623).jpg', 'masked (1624).jpg', 'masked (1625).jpg', 'masked (1626).jpg', 'masked (1627).jpg', 'masked (1628).jpg', 'masked (1629).jpg', 'masked (1630).jpg', 'masked (1631).jpg', 'masked (1632).jpg', 'masked (1633).jpg', 'masked (1634).jpg', 'masked (1635).jpg', 'masked (1636).jpg', 'masked (1637).jpg', 'masked (1638).jpg', 'masked (1639).jpg', 'masked (1640).jpg', 'masked (1641).jpg', 'masked (1642).jpg', 'masked (1643).jpg', 'masked (1644).jpg', 'masked (1645).jpg', 'masked (1646).jpg', 'masked (1647).jpg', 'masked (1648).jpg', 'masked (1649).jpg', 'masked (1650).jpg', 'masked (1651).jpg', 'masked (1652).jpg', 'masked (1653).jpg', 'masked (1654).jpg', 'masked (1655).jpg', 'masked (1656).jpg', 'masked (1657).jpg', 'masked (1658).jpg', 'masked (1659).jpg', 'masked (1660).jpg', 'masked (1661).jpg', 'masked (1662).jpg', 'masked (1663).jpg', 'masked (1664).jpg', 'masked (1665).jpg', 'masked (1666).jpg', 'masked (1667).jpg', 'masked (1668).jpg', 'masked (1669).jpg', 'masked (1670).jpg', 'masked (1671).jpg', 'masked (1672).jpg', 'masked (1673).jpg', 'masked (1674).jpg', 'masked (1675).jpg', 'masked (1676).jpg', 'masked (1677).jpg', 'masked (1678).jpg', 'masked (1680).jpg', 'masked (1681).jpg', 'masked (1682).jpg', 'masked (1683).jpg', 'masked (1684).jpg', 'masked (1685).jpg', 'masked (1686).jpg', 'masked (1687).jpg', 'masked (1688).jpg', 'masked (1690).jpg', 'masked (1691).jpg', 'masked (1692).jpg', 'masked (1693).jpg', 'masked (1694).jpg', 'masked (1695).jpg', 'masked (1696).jpg', 'masked (1697).jpg', 'masked (1698).jpg', 'masked (1699).jpg', 'masked (1700).jpg', 'masked (1701).jpg', 'masked (1702).jpg', 'masked (1703).jpg', 'masked (1861).jpg', 'masked (1862).jpg', 'masked (1863).jpg', 'masked (1864).jpg', 'masked (1865).jpg', 'masked (1866).jpg', 'masked (1867).jpg', 'masked (1868).jpg', 'masked (1869).jpg', 'masked (1870).jpg', 'masked (1871).jpg', 'masked (1872).jpg', 'masked (1873).jpg', 'masked (1874).jpg', 'masked (1875).jpg', 'masked (1876).jpg', 'masked (1877).jpg', 'masked (1878).jpg', 'masked (1879).jpg', 'masked (1880).jpg', 'masked (1881).jpg', 'masked (1882).jpg', 'masked (1883).jpg', 'masked (1884).jpg', 'masked (1885).jpg', 'masked (1886).jpg', 'masked (1887).jpg', 'masked (1888).jpg', 'masked (1889).jpg', 'masked (1890).jpg', 'masked (1891).jpg', 'masked (1892).jpg', 'masked (1893).jpg', 'masked (1894).jpg', 'masked (1895).jpg', 'masked (1896).jpg', 'masked (1897).jpg', 'masked (1898).jpg', 'masked (1899).jpg', 'masked (1900).jpg', 'masked (1901).jpg', 'masked (1902).jpg', 'masked (1903).jpg', 'masked (1904).jpg', 'masked (1905).jpg', 'masked (1906).jpg', 'masked (1907).jpg', 'masked (1908).jpg', 'masked (1909).jpg', 'masked (1910).jpg', 'masked (1911).jpg', 'masked (1912).jpg', 'masked (1913).jpg', 'masked (1914).jpg', 'masked (1915).jpg', 'masked (3).jpg', 'masked (4).jpg', 'masked (5).jpg', 'masked (6).jpg', 'masked (7).jpg', 'masked (8).jpg', 'masked (9).jpg', 'pra1.jpg', 'pra2.jpg', 'pra3.jpg', 'prajna.jpg', '107-with-mask.jpg', '108-with-mask.jpg', '109-with-mask.jpg', '11-with-mask.jpg', '110-with-mask.jpg', '111-with-mask.jpg', '112-with-mask.jpg', '113-with-mask.jpg', '114-with-mask.jpg', '115-with-mask.jpg', '116-with-mask.jpg', '117-with-mask.jpg', '118-with-mask.jpg', '119-with-mask.jpg', '12-with-mask.jpg', '120-with-mask.jpg', '121-with-mask.jpg', '122-with-mask.jpg', '123-with-mask.jpg', '124-with-mask.jpg', '125-with-mask.jpg', '126-with-mask.jpg', '127-with-mask.jpg', '128-with-mask.jpg', '129-with-mask.jpg', '13-with-mask.jpg', '131-with-mask.jpg', '132-with-mask.jpg', '133-with-mask.jpg', '134-with-mask.jpg', '135-with-mask.jpg', '136-with-mask.jpg', '137-with-mask.jpg', '138-with-mask.jpg', '139-with-mask.jpg', '14-with-mask.jpg', '140-with-mask.jpg', '141-with-mask.jpg', '144-with-mask.jpg', '146-with-mask.jpg', '147-with-mask.jpg', '148-with-mask.jpg', '150-with-mask.jpg', '151-with-mask.jpg', '152-with-mask.jpg', '153-with-mask.jpg', '154-with-mask.jpg', '155-with-mask.jpg', '156-with-mask.jpg', '157-with-mask.jpg', '158-with-mask.jpg', '159-with-mask.jpg', '160-with-mask.jpg', '161-with-mask.jpg', '162-with-mask.jpg', '163-with-mask.jpg', '165-with-mask.jpg', '167-with-mask.jpg', '168-with-mask.jpg', '169-with-mask.jpg', '170-with-mask.jpg', '171-with-mask.jpg', '172-with-mask.jpg', '173-with-mask.jpg', '174-with-mask.jpg', '175-with-mask.jpg', '176-with-mask.jpg', '177-with-mask.jpg', '179-with-mask.jpg', '180-with-mask.jpg', '181-with-mask.jpg', '182-with-mask.jpg', '183-with-mask.jpg', '184-with-mask.jpg', '185-with-mask.jpg', '186-with-mask.jpg', '187-with-mask.jpg', '189-with-mask.jpg', '190-with-mask.jpg', '192-with-mask.jpg', '193-with-mask.jpg', '194-with-mask.jpg', '195-with-mask.jpg', '196-with-mask.jpg', '197-with-mask.jpg', '198-with-mask.jpg', '2-with-mask.jpg', '200-with-mask.jpg', '201-with-mask.jpg', '202-with-mask.jpg', '203-with-mask.jpg', '204-with-mask.jpg', '205-with-mask.jpg', '206-with-mask.jpg', '207-with-mask.jpg', '209-with-mask.jpg', '211-with-mask.jpg', '212-with-mask.jpg', '214-with-mask.jpg', '215-with-mask.jpg', '217-with-mask.jpg', '218-with-mask.jpg', '219-with-mask.jpg', '221-with-mask.jpg', '222-with-mask.jpg', '223-with-mask.jpg', '224-with-mask.jpg', '225-with-mask.jpg', '227-with-mask.jpg', '228-with-mask.jpg', '229-with-mask.jpg', '231-with-mask.jpg', '232-with-mask.jpg', '233-with-mask.jpg', '234-with-mask.jpg', '235-with-mask.jpg', '236-with-mask.jpg', '237-with-mask.jpg', '238-with-mask.jpg', '239-with-mask.jpg', '240-with-mask.jpg', '241-with-mask.jpg', '242-with-mask.jpg', '243-with-mask.jpg', '244-with-mask.jpg', '245-with-mask.jpg', '246-with-mask.jpg', '251-with-mask.jpg', '252-with-mask.jpg', '253-with-mask.jpg', '254-with-mask.jpg', '256-with-mask.jpg', '257-with-mask.jpg', '259-with-mask.jpg', '26-with-mask.jpg', '260-with-mask.jpg', '261-with-mask.jpg', '262-with-mask.jpg', '263-with-mask.jpg', '267-with-mask.jpg', '268-with-mask.jpg', '269-with-mask.jpg', '27-with-mask.jpg', '270-with-mask.jpg', '272-with-mask.jpg', '273-with-mask.jpg', '274-with-mask.jpg', '275-with-mask.jpg', '276-with-mask.jpg', '277-with-mask.jpg', '278-with-mask.jpg', '279-with-mask.jpg', '281-with-mask.jpg', '282-with-mask.jpg', '283-with-mask.jpg', '284-with-mask.jpg', '285-with-mask.jpg', '286-with-mask.jpg', '287-with-mask.jpg', '288-with-mask.jpg', '289-with-mask.jpg', '29-with-mask.jpg', '290-with-mask.jpg', '291-with-mask.jpg', '293-with-mask.jpg', '294-with-mask.jpg', '295-with-mask.jpg', '296-with-mask.jpg', '298-with-mask.jpg', '299-with-mask.jpg', '3-with-mask.jpg', '30-with-mask.jpg', '301-with-mask.jpg', '302-with-mask.jpg', '303-with-mask.jpg', '304-with-mask.jpg', '305-with-mask.jpg', '306-with-mask.jpg', '307-with-mask.jpg', '308-with-mask.jpg', '309-with-mask.jpg', '31-with-mask.jpg', '311-with-mask.jpg', '313-with-mask.jpg', '314-with-mask.jpg', '315-with-mask.jpg', '316-with-mask.jpg', '317-with-mask.jpg', '318-with-mask.jpg', '319-with-mask.jpg', '32-with-mask.jpg', '322-with-mask.jpg', '323-with-mask.jpg', '324-with-mask.jpg', '325-with-mask.jpg', '326-with-mask.jpg', '327-with-mask.jpg', '33-with-mask.jpg', '330-with-mask.jpg', '331-with-mask.jpg', '332-with-mask.jpg', '333-with-mask.jpg', '334-with-mask.jpg', '335-with-mask.jpg', '336-with-mask.jpg', '338-with-mask.jpg', '339-with-mask.jpg', '34-with-mask.jpg', '340-with-mask.jpg', '342-with-mask.jpg', '343-with-mask.jpg', '344-with-mask.jpg', '345-with-mask.jpg', '346-with-mask.jpg', '347-with-mask.jpg', '348-with-mask.jpg', '349-with-mask.jpg', '35-with-mask.jpg', '351-with-mask.jpg', '353-with-mask.jpg', '355-with-mask.jpg', '356-with-mask.jpg', '357-with-mask.jpg', '358-with-mask.jpg', '359-with-mask.jpg', '36-with-mask.jpg', '362-with-mask.jpg', '364-with-mask.jpg', '365-with-mask.jpg', '366-with-mask.jpg', '368-with-mask.jpg', '369-with-mask.jpg', '37-with-mask.jpg', '374-with-mask.jpg', '375-with-mask.jpg', '376-with-mask.jpg', '377-with-mask.jpg', '378-with-mask.jpg', '379-with-mask.jpg', '38-with-mask.jpg', '381-with-mask.jpg', '382-with-mask.jpg', '383-with-mask.jpg', '384-with-mask.jpg', '385-with-mask.jpg', '386-with-mask.jpg', '387-with-mask.jpg', '39-with-mask.jpg', '390-with-mask.jpg', '391-with-mask.jpg', '392-with-mask.jpg', '393-with-mask.jpg', '394-with-mask.jpg', '395-with-mask.jpg', '396-with-mask.jpg', '397-with-mask.jpg', '398-with-mask.jpg', '399-with-mask.jpg', '4-with-mask.jpg', '40-with-mask.jpg', '401-with-mask.jpg', '402-with-mask.jpg', '404-with-mask.jpg', '405-with-mask.jpg', '406-with-mask.jpg', '407-with-mask.jpg', '408-with-mask.jpg', '409-with-mask.jpg', '41-with-mask.jpg', '411-with-mask.jpg', '413-with-mask.jpg', '414-with-mask.jpg', '415-with-mask.jpg', '416-with-mask.jpg', '417-with-mask.jpg', '418-with-mask.jpg', '419-with-mask.jpg', '42-with-mask.jpg', '420-with-mask.jpg', '421-with-mask.jpg', '422-with-mask.jpg', '425-with-mask.jpg', '427-with-mask.jpg', '429-with-mask.jpg', '43-with-mask.jpg', '430-with-mask.jpg', '431-with-mask.jpg', '432-with-mask.jpg', '433-with-mask.jpg', '434-with-mask.jpg', '435-with-mask.jpg', '436-with-mask.jpg', '438-with-mask.jpg', '439-with-mask.jpg', '440-with-mask.jpg', '441-with-mask.jpg', '442-with-mask.jpg', '443-with-mask.jpg', '444-with-mask.jpg', '445-with-mask.jpg', '446-with-mask.jpg', '447-with-mask.jpg', '448-with-mask.jpg', '449-with-mask.jpg', '45-with-mask.jpg', '450-with-mask.jpg', '451-with-mask.jpg', '452-with-mask.jpg', '453-with-mask.jpg', '454-with-mask.jpg', '455-with-mask.jpg', '456-with-mask.jpg', '457-with-mask.jpg', '458-with-mask.jpg', '459-with-mask.jpg', '46-with-mask.jpg', '460-with-mask.jpg', '461-with-mask.jpg', '462-with-mask.jpg', '463-with-mask.jpg', '464-with-mask.jpg', '466-with-mask.jpg', '467-with-mask.jpg', '47-with-mask.jpg', '471-with-mask.jpg', '472-with-mask.jpg', '473-with-mask.jpg', '474-with-mask.jpg', '475-with-mask.jpg', '476-with-mask.jpg', '477-with-mask.jpg', '478-with-mask.jpg', '479-with-mask.jpg', '48-with-mask.jpg', '480-with-mask.jpg', '481-with-mask.jpg', '49-with-mask.jpg', '5-with-mask.jpg', '50-with-mask.jpg', '51-with-mask.jpg', '52-with-mask.jpg', '53-with-mask.jpg', '56-with-mask.jpg', '57-with-mask.jpg', '59-with-mask.jpg', '6-with-mask.jpg', '61-with-mask.jpg', '62-with-mask.jpg', '64-with-mask.jpg', '65-with-mask.jpg', '67-with-mask.jpg', '68-with-mask.jpg', '7-with-mask.jpg', '70-with-mask.jpg', '71-with-mask.jpg', '72-with-mask.jpg', '73-with-mask.jpg', '74-with-mask.jpg', '75-with-mask.jpg', '76-with-mask.jpg', '77-with-mask.jpg', '78-with-mask.jpg', '79-with-mask.jpg', '8-with-mask.jpg', '80-with-mask.jpg', '81-with-mask.jpg', '82-with-mask.jpg', '83-with-mask.jpg', '84-with-mask.jpg', '85-with-mask.jpg', '86-with-mask.jpg', '88-with-mask.jpg', '89-with-mask.jpg', '9-with-mask.jpg', '91-with-mask.jpg', '92-with-mask.jpg', '93-with-mask.jpg', '94-with-mask.jpg', '96-with-mask.jpg', '97-with-mask.jpg', '98-with-mask.jpg', '99-with-mask.jpg', 'masked (10).jpg', 'masked (11).jpg', 'masked (1257).jpg', 'masked (1258).jpg', 'masked (1259).jpg', 'masked (1260).jpg', 'masked (1261).jpg', 'masked (1263).jpg', 'masked (1264).jpg', 'masked (1265).jpg', 'masked (1266).jpg', 'masked (1267).jpg', 'masked (1268).jpg', 'masked (1269).jpg', 'masked (1270).jpg', 'masked (1271).jpg', 'masked (1272).jpg', 'masked (1273).jpg', 'masked (1274).jpg', 'masked (1275).jpg', 'masked (1276).jpg', 'masked (1277).jpg', 'masked (1278).jpg', 'masked (1279).jpg', 'masked (1280).jpg', 'masked (1281).jpg', 'masked (1282).jpg', 'masked (1283).jpg', 'masked (1284).jpg', 'masked (1285).jpg', 'masked (1286).jpg', 'masked (1287).jpg', 'masked (1288).jpg', 'masked (1289).jpg', 'masked (1290).jpg', 'masked (1291).jpg', 'masked (1292).jpg', 'masked (1293).jpg', 'masked (1296).jpg', 'masked (1297).jpg', 'masked (1298).jpg', 'masked (1299).jpg', 'masked (1300).jpg', 'masked (1301).jpg', 'masked (1302).jpg', 'masked (1303).jpg', 'masked (1304).jpg', 'masked (1305).jpg', 'masked (1306).jpg', 'masked (1307).jpg', 'masked (1308).jpg', 'masked (1309).jpg', 'masked (1310).jpg', 'masked (1311).jpg', 'masked (1312).jpg', 'masked (1313).jpg', 'masked (1314).jpg', 'masked (1315).jpg', 'masked (1316).jpg', 'masked (1317).jpg', 'masked (1318).jpg', 'masked (1319).jpg', 'masked (1320).jpg', 'masked (1321).jpg', 'masked (1322).jpg', 'masked (1323).jpg', 'masked (1324).jpg', 'masked (1325).jpg', 'masked (1326).jpg', 'masked (1327).jpg', 'masked (1328).jpg', 'masked (1329).jpg', 'masked (1330).jpg', 'masked (1331).jpg', 'masked (1332).jpg', 'masked (1333).jpg', 'masked (1334).jpg', 'masked (1335).jpg', 'masked (1336).jpg', 'masked (1337).jpg', 'masked (1338).jpg', 'masked (1339).jpg', 'masked (1340).jpg', 'masked (1341).jpg', 'masked (1342).jpg', 'masked (1343).jpg', 'masked (1344).jpg', 'masked (1345).jpg', 'masked (1346).jpg', 'masked (1347).jpg', 'masked (1348).jpg', 'masked (1349).jpg', 'masked (1350).jpg', 'masked (1351).jpg', 'masked (1352).jpg', 'masked (1353).jpg', 'masked (1354).jpg', 'masked (1355).jpg', 'masked (1356).jpg', 'masked (1357).jpg', 'masked (1358).jpg', 'masked (1359).jpg', '0-with-mask.jpg', '1-with-mask.jpg', '10-with-mask.jpg', '100-with-mask.jpg', '101-with-mask.jpg', '103-with-mask.jpg', '104-with-mask.jpg', '105-with-mask.jpg', '106-with-mask.jpg']
print (unmasked)
['unmasked (1384).jpg', 'unmasked (1385).jpg', 'unmasked (1386).jpg', 'unmasked (1387).jpg', 'unmasked (1388).jpg', 'unmasked (1389).jpg', 'unmasked (1390).jpg', 'unmasked (1391).jpg', 'unmasked (1392).jpg', 'unmasked (1393).jpg', 'unmasked (1394).jpg', 'unmasked (1395).jpg', 'unmasked (1396).jpg', 'unmasked (1397).jpg', 'unmasked (1398).jpg', 'unmasked (1399).jpg', 'unmasked (1400).jpg', 'unmasked (1401).jpg', 'unmasked (1402).jpg', 'unmasked (1403).jpg', 'unmasked (1404).jpg', 'unmasked (1405).jpg', 'unmasked (1406).jpg', 'unmasked (1407).jpg', 'unmasked (1408).jpg', 'unmasked (1409).jpg', 'unmasked (1410).jpg', 'unmasked (1411).jpg', 'unmasked (1412).jpg', 'unmasked (1413).jpg', 'unmasked (1414).jpg', 'unmasked (1415).jpg', 'unmasked (1416).jpg', 'unmasked (1417).jpg', 'unmasked (1418).jpg', 'unmasked (1419).jpg', 'unmasked (1420).jpg', 'unmasked (1421).jpg', 'unmasked (1422).jpg', 'unmasked (1424).jpg', 'unmasked (1425).jpg', 'unmasked (1426).jpg', 'unmasked (1427).jpg', 'unmasked (1428).jpg', 'unmasked (1429).jpg', 'unmasked (1430).jpg', 'unmasked (1432).jpg', 'unmasked (1433).jpg', 'unmasked (1434).jpg', 'unmasked (1435).jpg', 'unmasked (1436).jpg', 'unmasked (1437).jpg', 'unmasked (1438).jpg', 'unmasked (1439).jpg', 'unmasked (1440).jpg', 'unmasked (1441).jpg', 'unmasked (1442).jpg', 'unmasked (1443).jpg', 'unmasked (1444).jpg', 'unmasked (1445).jpg', 'unmasked (1446).jpg', 'unmasked (1447).jpg', 'unmasked (1448).jpg', 'unmasked (1449).jpg', 'unmasked (1450).jpg', 'unmasked (1451).jpg', 'unmasked (1452).jpg', 'unmasked (1453).jpg', 'unmasked (1454).jpg', 'unmasked (1455).jpg', 'unmasked (1456).jpg', 'unmasked (1457).jpg', 'unmasked (1458).jpg', 'unmasked (1459).jpg', 'unmasked (1460).jpg', 'unmasked (1461).jpg', 'unmasked (1462).jpg', 'unmasked (1463).jpg', 'unmasked (1464).jpg', 'unmasked (1465).jpg', 'unmasked (1466).jpg', 'unmasked (1467).jpg', 'unmasked (1468).jpg', 'unmasked (1469).jpg', 'unmasked (1470).jpg', 'unmasked (1471).jpg', 'unmasked (1472).jpg', 'unmasked (1473).jpg', 'unmasked (1475).jpg', 'unmasked (1476).jpg', 'unmasked (1477).jpg', 'unmasked (1478).jpg', 'unmasked (1479).jpg', 'unmasked (1480).jpg', 'unmasked (1481).jpg', 'unmasked (1482).jpg', 'unmasked (1483).jpg', 'unmasked (1484).jpg', 'unmasked (1485).jpg', 'unmasked (1486).jpg', 'unmasked (1487).jpg', 'unmasked (1488).jpg', 'unmasked (1489).jpg', 'unmasked (1490).jpg', 'unmasked (1491).jpg', 'unmasked (1492).jpg', 'unmasked (1493).jpg', 'unmasked (1494).jpg', 'unmasked (1495).jpg', 'unmasked (1496).jpg', 'unmasked (1497).jpg', 'unmasked (1498).jpg', 'unmasked (1499).jpg', 'unmasked (1500).jpg', 'unmasked (1501).jpg', 'unmasked (1502).jpg', 'unmasked (1503).jpg', 'unmasked (1504).jpg', 'unmasked (1505).jpg', 'unmasked (1506).jpg', 'unmasked (1507).jpg', 'unmasked (1508).jpg', 'unmasked (1509).jpg', 'unmasked (1510).jpg', 'unmasked (1511).jpg', 'unmasked (1512).jpg', 'unmasked (1513).jpg', 'unmasked (1514).jpg', 'unmasked (1515).jpg', 'unmasked (1516).jpg', 'unmasked (1517).jpg', 'unmasked (1518).jpg', 'unmasked (1519).jpg', 'unmasked (1520).jpg', 'unmasked (1521).jpg', 'unmasked (1522).jpg', 'unmasked (1523).jpg', 'unmasked (1524).jpg', 'unmasked (1525).jpg', 'unmasked (1526).jpg', 'unmasked (1527).jpg', 'unmasked (1528).jpg', 'unmasked (1529).jpg', 'unmasked (1530).jpg', 'unmasked (1531).jpg', 'unmasked (1532).jpg', 'unmasked (1533).jpg', 'unmasked (1534).jpg', 'unmasked (1535).jpg', 'unmasked (1536).jpg', 'unmasked (1537).jpg', 'unmasked (1538).jpg', 'unmasked (1539).jpg', 'unmasked (1540).jpg', 'unmasked (1541).jpg', 'unmasked (1542).jpg', 'unmasked (1543).jpg', 'unmasked (1544).jpg', 'unmasked (1545).jpg', 'unmasked (1546).jpg', 'unmasked (1547).jpg', 'unmasked (1549).jpg', 'unmasked (1550).jpg', 'unmasked (1551).jpg', 'unmasked (1552).jpg', 'unmasked (1553).jpg', 'unmasked (1554).jpg', 'unmasked (1555).jpg', 'unmasked (1556).jpg', 'unmasked (1557).jpg', 'unmasked (1558).jpg', 'unmasked (1559).jpg', 'unmasked (1560).jpg', 'unmasked (1561).jpg', 'unmasked (1562).jpg', 'unmasked (1563).jpg', 'unmasked (1564).jpg', 'unmasked (1565).jpg', 'unmasked (1566).jpg', 'unmasked (1567).jpg', 'unmasked (1568).jpg', 'unmasked (1569).jpg', 'unmasked (1570).jpg', 'unmasked (1571).jpg', 'unmasked (1572).jpg', 'unmasked (1573).jpg', 'unmasked (1574).jpg', 'unmasked (1575).jpg', 'unmasked (1576).jpg', 'unmasked (1577).jpg', 'unmasked (1578).jpg', 'unmasked (1579).jpg', 'unmasked (1580).jpg', 'unmasked (1581).jpg', 'unmasked (1582).jpg', 'unmasked (1583).jpg', 'unmasked (1584).jpg', 'unmasked (1585).jpg', 'unmasked (1586).jpg', 'unmasked (1587).jpg', 'unmasked (1588).jpg', 'unmasked (1591).jpg', 'unmasked (1592).jpg', 'unmasked (1593).jpg', 'unmasked (1594).jpg', 'unmasked (1595).jpg', 'unmasked (1596).jpg', 'unmasked (1597).jpg', 'unmasked (1598).jpg', 'unmasked (1599).jpg', 'unmasked (1600).jpg', 'unmasked (1601).jpg', 'unmasked (1602).jpg', 'unmasked (1603).jpg', 'unmasked (1604).jpg', 'unmasked (1605).jpg', 'unmasked (1606).jpg', 'unmasked (1607).jpg', 'unmasked (1609).jpg', 'unmasked (1610).jpg', 'unmasked (1611).jpg', 'unmasked (1612).jpg', 'unmasked (1613).jpg', 'unmasked (1614).jpg', 'unmasked (1615).jpg', 'unmasked (1616).jpg', 'unmasked (1617).jpg', 'unmasked (1618).jpg', 'unmasked (1619).jpg', 'unmasked (1620).jpg', 'unmasked (1621).jpg', 'unmasked (1622).jpg', 'unmasked (1623).jpg', 'unmasked (1624).jpg', 'unmasked (1625).jpg', 'unmasked (1626).jpg', 'unmasked (1627).jpg', 'unmasked (1628).jpg', 'unmasked (1629).jpg', 'unmasked (1630).jpg', 'unmasked (1631).jpg', 'unmasked (1632).jpg', 'unmasked (1633).jpg', 'unmasked (1634).jpg', 'unmasked (1635).jpg', 'unmasked (1636).jpg', 'unmasked (1637).jpg', 'unmasked (1638).jpg', 'unmasked (1639).jpg', 'unmasked (1640).jpg', 'unmasked (1642).jpg', 'unmasked (1644).jpg', 'unmasked (1645).jpg', 'unmasked (1646).jpg', 'unmasked (1647).jpg', 'unmasked (1648).jpg', 'unmasked (1649).jpg', 'unmasked (1650).jpg', 'unmasked (1651).jpg', 'unmasked (1652).jpg', 'unmasked (1653).jpg', 'unmasked (1654).jpg', 'unmasked (1655).jpg', 'unmasked (1656).jpg', 'unmasked (1659).jpg', 'unmasked (1662).jpg', 'unmasked (1663).jpg', 'unmasked (1669).jpg', 'unmasked (1670).jpg', 'unmasked (1671).jpg', 'unmasked (1672).jpg', 'unmasked (1673).jpg', 'unmasked (1674).jpg', 'unmasked (1677).jpg', 'unmasked (1680).jpg', 'unmasked (1682).jpg', 'unmasked (1683).jpg', 'unmasked (1688).jpg', 'unmasked (1690).jpg', 'unmasked (1697).jpg', 'unmasked (1699).jpg', 'unmasked (1708).jpg', 'unmasked (1709).jpg', 'unmasked (1714).jpg', 'unmasked (1716).jpg', 'unmasked (1725).jpg', 'unmasked (1730).jpg', 'unmasked (1732).jpg', 'unmasked (1733).jpg', 'unmasked (1739).jpg', 'unmasked (1741).jpg', 'unmasked (1746).jpg', 'unmasked (1748).jpg', 'unmasked (1752).jpg', 'unmasked (1758).jpg', 'unmasked (1761).jpg', 'unmasked (1762).jpg', 'unmasked (1763).jpg', 'unmasked (1764).jpg', 'unmasked (1769).jpg', 'unmasked (1777).jpg', 'unmasked (1778).jpg', 'unmasked (1785).jpg', 'unmasked (1788).jpg', 'unmasked (1792).jpg', 'unmasked (1793).jpg', 'unmasked (1794).jpg', 'unmasked (1795).jpg', 'unmasked (1796).jpg', 'unmasked (1800).jpg', 'unmasked (1803).jpg', 'unmasked (1807).jpg', 'unmasked (1813).jpg', 'unmasked (1815).jpg', 'unmasked (1819).jpg', 'unmasked (1822).jpg', 'unmasked (1824).jpg', 'unmasked (1827).jpg', 'unmasked (1834).jpg', 'unmasked (1835).jpg', 'unmasked (1839).jpg', 'unmasked (1840).jpg', 'unmasked (1843).jpg', 'unmasked (1852).jpg', 'unmasked (1853).jpg', 'unmasked (1854).jpg', 'unmasked (1856).jpg', 'unmasked (1858).jpg', 'unmasked (1859).jpg', 'unmasked (1864).jpg', 'unmasked (1865).jpg', 'unmasked (1866).jpg', 'unmasked (1867).jpg', 'unmasked (1869).jpg', 'unmasked (1872).jpg', 'unmasked (1875).jpg', 'unmasked (1876).jpg', 'unmasked (1879).jpg', 'unmasked (1882).jpg', 'unmasked (1885).jpg', 'unmasked (1886).jpg', 'unmasked (1888).jpg', 'unmasked (1891).jpg', 'unmasked (1894).jpg', 'unmasked (1897).jpg', 'unmasked (1899).jpg', 'unmasked (1900).jpg', 'unmasked (1903).jpg', 'unmasked (1904).jpg', 'unmasked (1907).jpg', 'unmasked (1912).jpg', 'unmasked (1250).jpg', 'unmasked (1251).jpg', 'unmasked (1252).jpg', 'unmasked (1253).jpg', 'unmasked (1255).jpg', 'unmasked (1256).jpg', 'unmasked (1257).jpg', 'unmasked (1260).jpg', 'unmasked (1261).jpg', 'unmasked (1262).jpg', 'unmasked (1263).jpg', 'unmasked (1264).jpg', 'unmasked (1265).jpg', 'unmasked (1266).jpg', 'unmasked (1267).jpg', 'unmasked (1268).jpg', 'unmasked (1269).jpg', 'unmasked (1270).jpg', 'unmasked (1271).jpg', 'unmasked (1272).jpg', 'unmasked (1274).jpg', 'unmasked (1275).jpg', 'unmasked (1276).jpg', 'unmasked (1277).jpg', 'unmasked (1278).jpg', 'unmasked (1279).jpg', 'unmasked (1280).jpg', 'unmasked (1282).jpg', 'unmasked (1285).jpg', 'unmasked (1286).jpg', 'unmasked (1287).jpg', 'unmasked (1288).jpg', 'unmasked (1289).jpg', 'unmasked (1290).jpg', 'unmasked (1291).jpg', 'unmasked (1292).jpg', 'unmasked (1293).jpg', 'unmasked (1295).jpg', 'unmasked (1297).jpg', 'unmasked (1298).jpg', 'unmasked (1299).jpg', 'unmasked (1301).jpg', 'unmasked (1302).jpg', 'unmasked (1303).jpg', 'unmasked (1304).jpg', 'unmasked (1306).jpg', 'unmasked (1307).jpg', 'unmasked (1308).jpg', 'unmasked (1309).jpg', 'unmasked (1310).jpg', 'unmasked (1311).jpg', 'unmasked (1312).jpg', 'unmasked (1313).jpg', 'unmasked (1314).jpg', 'unmasked (1315).jpg', 'unmasked (1316).jpg', 'unmasked (1317).jpg', 'unmasked (1318).jpg', 'unmasked (1319).jpg', 'unmasked (1321).jpg', 'unmasked (1322).jpg', 'unmasked (1323).jpg', 'unmasked (1324).jpg', 'unmasked (1325).jpg', 'unmasked (1326).jpg', 'unmasked (1327).jpg', 'unmasked (1328).jpg', 'unmasked (1329).jpg', 'unmasked (1330).jpg', 'unmasked (1331).jpg', 'unmasked (1332).jpg', 'unmasked (1333).jpg', 'unmasked (1334).jpg', 'unmasked (1335).jpg', 'unmasked (1336).jpg', 'unmasked (1337).jpg', 'unmasked (1338).jpg', 'unmasked (1339).jpg', 'unmasked (1340).jpg', 'unmasked (1341).jpg', 'unmasked (1342).jpg', 'unmasked (1343).jpg', 'unmasked (1344).jpg', 'unmasked (1372).jpg', 'unmasked (1374).jpg', 'unmasked (1375).jpg', 'unmasked (1376).jpg', 'unmasked (1377).jpg', 'unmasked (1378).jpg', 'unmasked (1380).jpg', 'unmasked (1381).jpg', 'unmasked (1382).jpg', 'unmasked (1383).jpg', '132.jpg', '134.jpg', '137.jpg', '138.jpg', '148.jpg', '149.jpg', '151.jpg', '159.jpg', '169.jpg', '178.jpg', '195.jpg', '201.jpg', '332.jpg', '431.jpg', '49.jpg', '63.jpg', '0.jpg']
random.shuffle(masked)
random.shuffle(unmasked)
print (masked)
['383-with-mask.jpg', 'masked (1863).jpg', 'masked (1665).jpg', 'masked (1260).jpg', '262-with-mask.jpg', 'masked (1414).jpg', '182-with-mask.jpg', '406-with-mask.jpg', '174-with-mask.jpg', '47-with-mask.jpg', 'masked (1541).jpg', 'masked (1308).jpg', 'masked (1914).jpg', 'masked (1319).jpg', '394-with-mask.jpg', 'masked (1413).jpg', 'masked (1449).jpg', 'with_maska (16).jpg', '86-with-mask.jpg', 'masked (10).jpg', 'with_mask (61).jpg', 'masked (1911).jpg', 'masked (1384).jpg', 'masked (1599).jpg', 'masked (1591).jpg', 'masked (1328).jpg', '411-with-mask.jpg', 'with_maska (20).jpg', 'masked (1435).jpg', 'masked (1870).jpg', 'masked (1514).jpg', 'masked (1684).jpg', 'with_mask (33).jpg', 'masked (1656).jpg', 'with_mask (52).jpg', 'with_mask (83).jpg', 'with_maska (10).jpg', 'masked (1909).jpg', '106-with-mask.jpg', '456-with-mask.jpg', 'masked (1364).jpg', '307-with-mask.jpg', '326-with-mask.jpg', 'with_maskb (9).jpg', 'with_maska (24).jpg', 'masked (1263).jpg', 'masked (1643).jpg', 'masked (1439).jpg', 'masked (1883).jpg', '187-with-mask.jpg', '345-with-mask.jpg', 'masked (1307).jpg', 'masked (1322).jpg', '343-with-mask.jpg', 'masked (3).jpg', 'masked (1403).jpg', '316-with-mask.jpg', '242-with-mask.jpg', '376-with-mask.jpg', '175-with-mask.jpg', 'with_mask (90).jpg', '206-with-mask.jpg', '399-with-mask.jpg', 'with_mask (71).jpg', 'masked (1459).jpg', 'with_mask (21).jpg', 'masked (1580).jpg', 'masked (1293).jpg', 'with_mask (32).jpg', 'masked (1664).jpg', 'masked (1687).jpg', 'masked (1892).jpg', 'with_mask (47).jpg', 'with_mask (74).jpg', 'with_mask (16).jpg', 'masked (1700).jpg', 'with_mask (95).jpg', 'masked (1584).jpg', 'masked (1337).jpg', 'with_maska (28).jpg', 'masked (1360).jpg', '446-with-mask.jpg', 'masked (1548).jpg', 'with_mask (70).jpg', 'masked (1621).jpg', '150-with-mask.jpg', '377-with-mask.jpg', 'with_mask (26).jpg', '331-with-mask.jpg', 'masked (1549).jpg', 'masked (1354).jpg', 'masked (1344).jpg', 'with_mask (11).jpg', 'masked (1680).jpg', 'masked (1355).jpg', 'masked (1563).jpg', 'masked (1871).jpg', 'with_maska (25).jpg', '421-with-mask.jpg', 'masked (1574).jpg', 'masked (1657).jpg', 'masked (1352).jpg', 'with_mask (30).jpg', '103-with-mask.jpg', '303-with-mask.jpg', 'masked (1607).jpg', 'masked (1375).jpg', 'with_mask (19).jpg', 'masked (1614).jpg', '309-with-mask.jpg', 'with_mask (102).jpg', 'masked (1343).jpg', 'with_maskb (13).jpg', 'masked (1353).jpg', '462-with-mask.jpg', '163-with-mask.jpg', 'masked (1257).jpg', '283-with-mask.jpg', 'with_mask (13).jpg', 'masked (1501).jpg', 'masked (1268).jpg', 'masked (1496).jpg', 'masked (1561).jpg', 'masked (1417).jpg', 'masked (1399).jpg', '378-with-mask.jpg', 'masked (1370).jpg', 'masked (1899).jpg', '443-with-mask.jpg', '231-with-mask.jpg', 'with_maskb (4).jpg', '168-with-mask.jpg', '6-with-mask.jpg', 'with_maskb (11).jpg', 'masked (1410).jpg', 'masked (1532).jpg', 'with_mask (40).jpg', 'masked (1438).jpg', 'masked (1622).jpg', '156-with-mask.jpg', 'masked (1666).jpg', 'masked (1553).jpg', 'masked (1887).jpg', '476-with-mask.jpg', '359-with-mask.jpg', 'masked (1312).jpg', '269-with-mask.jpg', '415-with-mask.jpg', 'masked (1658).jpg', 'with_mask (94).jpg', 'masked (1348).jpg', 'with_maska (4).jpg', 'masked (1505).jpg', 'masked (1277).jpg', 'with_maska (19).jpg', 'masked (1908).jpg', '429-with-mask.jpg', 'masked (9).jpg', 'masked (1673).jpg', 'prajna.jpg', '311-with-mask.jpg', 'masked (1400).jpg', 'masked (1495).jpg', '205-with-mask.jpg', '386-with-mask.jpg', 'masked (1320).jpg', 'masked (1586).jpg', 'masked (1579).jpg', '449-with-mask.jpg', 'masked (1335).jpg', '379-with-mask.jpg', 'with_mask (104).jpg', '339-with-mask.jpg', 'with_mask (4).jpg', '284-with-mask.jpg', '180-with-mask.jpg', 'masked (1529).jpg', '336-with-mask.jpg', 'masked (1540).jpg', 'masked (1661).jpg', 'masked (1271).jpg', 'with_mask (68).jpg', '61-with-mask.jpg', '346-with-mask.jpg', 'masked (1457).jpg', 'masked (1336).jpg', 'with_maskb (15).jpg', '100-with-mask.jpg', '78-with-mask.jpg', '83-with-mask.jpg', '127-with-mask.jpg', 'masked (1480).jpg', '246-with-mask.jpg', '91-with-mask.jpg', 'masked (8).jpg', 'masked (1279).jpg', 'masked (1506).jpg', '355-with-mask.jpg', 'with_maska (17).jpg', 'masked (1267).jpg', '460-with-mask.jpg', '196-with-mask.jpg', '374-with-mask.jpg', 'masked (1421).jpg', '228-with-mask.jpg', '35-with-mask.jpg', 'masked (1907).jpg', '340-with-mask.jpg', 'masked (1296).jpg', 'masked (1627).jpg', '434-with-mask.jpg', 'masked (1872).jpg', 'masked (1366).jpg', 'masked (1632).jpg', 'masked (1601).jpg', 'masked (1675).jpg', 'masked (1879).jpg', 'masked (1676).jpg', '405-with-mask.jpg', 'masked (1280).jpg', 'masked (1275).jpg', 'masked (1297).jpg', 'masked (1510).jpg', '294-with-mask.jpg', 'masked (1325).jpg', 'masked (1663).jpg', '89-with-mask.jpg', 'masked (1585).jpg', 'masked (1401).jpg', '189-with-mask.jpg', 'masked (1381).jpg', 'with_maska (14).jpg', 'masked (1463).jpg', 'masked (1567).jpg', '123-with-mask.jpg', 'masked (1672).jpg', 'masked (1448).jpg', '324-with-mask.jpg', '214-with-mask.jpg', 'masked (1340).jpg', 'with_mask (87).jpg', 'masked (1523).jpg', 'with_mask (98).jpg', 'masked (1596).jpg', '357-with-mask.jpg', 'masked (1361).jpg', 'masked (1644).jpg', 'masked (1618).jpg', '194-with-mask.jpg', 'masked (1367).jpg', 'with_maska (6).jpg', 'with_mask (54).jpg', '71-with-mask.jpg', '313-with-mask.jpg', 'masked (1538).jpg', 'masked (1637).jpg', 'masked (1906).jpg', '108-with-mask.jpg', 'masked (1653).jpg', 'masked (1525).jpg', '390-with-mask.jpg', 'masked (1620).jpg', '234-with-mask.jpg', 'masked (1895).jpg', 'with_mask (18).jpg', 'masked (1485).jpg', 'with_mask (50).jpg', 'with_mask (9).jpg', 'masked (1896).jpg', 'with_maskb (5).jpg', 'masked (7).jpg', 'masked (1690).jpg', 'masked (1288).jpg', 'masked (1420).jpg', '237-with-mask.jpg', 'with_mask (63).jpg', '148-with-mask.jpg', 'with_mask (34).jpg', 'masked (1560).jpg', 'with_maska (18).jpg', 'with_maska (26).jpg', 'masked (1645).jpg', 'masked (1473).jpg', 'with_maskb (1).jpg', 'masked (1573).jpg', 'masked (1612).jpg', 'masked (1697).jpg', 'masked (1590).jpg', 'with_maskb (10).jpg', '244-with-mask.jpg', '275-with-mask.jpg', 'pra1.jpg', 'with_mask (101).jpg', 'with_mask (88).jpg', 'masked (1351).jpg', '333-with-mask.jpg', '296-with-mask.jpg', '241-with-mask.jpg', 'masked (1402).jpg', 'with_mask (2).jpg', '53-with-mask.jpg', 'masked (1609).jpg', '315-with-mask.jpg', '169-with-mask.jpg', 'masked (1670).jpg', 'masked (1903).jpg', 'masked (1551).jpg', 'masked (1385).jpg', 'with_mask (49).jpg', '1-with-mask.jpg', 'masked (1409).jpg', 'masked (1287).jpg', '43-with-mask.jpg', '153-with-mask.jpg', 'masked (1426).jpg', 'masked (1369).jpg', '57-with-mask.jpg', '129-with-mask.jpg', '138-with-mask.jpg', 'masked (1404).jpg', 'with_mask (36).jpg', 'masked (1408).jpg', '221-with-mask.jpg', 'with_mask (64).jpg', '157-with-mask.jpg', 'with_mask (59).jpg', '285-with-mask.jpg', '152-with-mask.jpg', 'masked (1891).jpg', '425-with-mask.jpg', 'masked (1484).jpg', 'masked (1624).jpg', '84-with-mask.jpg', 'masked (1477).jpg', 'with_maskb (2).jpg', 'masked (1430).jpg', '222-with-mask.jpg', 'masked (1304).jpg', 'with_maska (15).jpg', '387-with-mask.jpg', '139-with-mask.jpg', 'masked (1458).jpg', 'masked (1503).jpg', 'masked (1638).jpg', 'masked (1444).jpg', 'masked (1648).jpg', 'masked (1500).jpg', 'masked (1552).jpg', '477-with-mask.jpg', '52-with-mask.jpg', 'with_maskb (7).jpg', 'masked (1578).jpg', 'with_mask (42).jpg', 'masked (1309).jpg', 'masked (1411).jpg', 'with_mask (12).jpg', 'masked (1886).jpg', 'masked (1269).jpg', '201-with-mask.jpg', 'masked (1865).jpg', '448-with-mask.jpg', 'with_mask (3).jpg', '215-with-mask.jpg', 'masked (1651).jpg', 'with_mask (79).jpg', 'with_mask (44).jpg', 'with_mask (39).jpg', 'masked (1513).jpg', 'masked (1359).jpg', '433-with-mask.jpg', 'masked (1655).jpg', 'masked (1266).jpg', 'masked (1443).jpg', '289-with-mask.jpg', '261-with-mask.jpg', '114-with-mask.jpg', '65-with-mask.jpg', 'masked (1901).jpg', 'masked (1261).jpg', '77-with-mask.jpg', '431-with-mask.jpg', 'masked (1465).jpg', '450-with-mask.jpg', 'masked (1332).jpg', 'with_mask (14).jpg', '200-with-mask.jpg', '236-with-mask.jpg', 'masked (1491).jpg', 'masked (1519).jpg', 'masked (1396).jpg', '26-with-mask.jpg', 'masked (6).jpg', 'masked (1878).jpg', '330-with-mask.jpg', 'with_maskb (6).jpg', 'masked (1884).jpg', 'masked (1318).jpg', 'masked (1873).jpg', 'masked (1454).jpg', '435-with-mask.jpg', 'masked (1363).jpg', '118-with-mask.jpg', 'masked (1625).jpg', '79-with-mask.jpg', '2-with-mask.jpg', 'masked (1511).jpg', 'masked (1442).jpg', '422-with-mask.jpg', 'pra2.jpg', 'masked (1695).jpg', '80-with-mask.jpg', 'masked (1639).jpg', 'masked (1652).jpg', 'masked (1518).jpg', '365-with-mask.jpg', '38-with-mask.jpg', 'masked (1628).jpg', 'masked (1492).jpg', 'masked (1440).jpg', 'with_mask (35).jpg', 'masked (1693).jpg', 'masked (1283).jpg', '409-with-mask.jpg', '243-with-mask.jpg', 'masked (1537).jpg', 'with_mask (78).jpg', 'masked (1468).jpg', 'masked (1437).jpg', 'masked (1671).jpg', 'masked (1497).jpg', 'masked (1334).jpg', 'masked (1504).jpg', '33-with-mask.jpg', '382-with-mask.jpg', '305-with-mask.jpg', 'masked (1683).jpg', 'masked (1576).jpg', 'masked (1286).jpg', 'masked (1474).jpg', '227-with-mask.jpg', '39-with-mask.jpg', 'with_mask (43).jpg', '235-with-mask.jpg', 'with_maska (2).jpg', 'masked (1378).jpg', 'masked (1331).jpg', 'with_mask (81).jpg', 'with_mask (93).jpg', 'masked (1291).jpg', 'with_mask (75).jpg', '391-with-mask.jpg', '8-with-mask.jpg', 'masked (1380).jpg', '158-with-mask.jpg', '233-with-mask.jpg', '193-with-mask.jpg', 'masked (1346).jpg', 'masked (1509).jpg', 'masked (11).jpg', 'masked (1542).jpg', 'masked (1298).jpg', 'masked (1898).jpg', '474-with-mask.jpg', 'masked (1554).jpg', 'masked (1674).jpg', 'masked (1562).jpg', 'with_mask (57).jpg', '122-with-mask.jpg', 'with_maska (11).jpg', '121-with-mask.jpg', 'masked (1581).jpg', 'masked (1629).jpg', '375-with-mask.jpg', '110-with-mask.jpg', 'masked (1572).jpg', 'masked (1861).jpg', 'masked (1641).jpg', 'masked (1415).jpg', 'with_mask (48).jpg', '362-with-mask.jpg', 'masked (1566).jpg', 'masked (1564).jpg', '76-with-mask.jpg', '119-with-mask.jpg', 'masked (1913).jpg', '286-with-mask.jpg', '105-with-mask.jpg', 'masked (1619).jpg', '73-with-mask.jpg', '252-with-mask.jpg', '154-with-mask.jpg', 'with_maska (3).jpg', 'with_mask (73).jpg', 'masked (1539).jpg', 'masked (1888).jpg', '413-with-mask.jpg', '98-with-mask.jpg', 'masked (1556).jpg', '293-with-mask.jpg', 'masked (1446).jpg', 'masked (1616).jpg', 'masked (1300).jpg', 'with_mask (27).jpg', '82-with-mask.jpg', '29-with-mask.jpg', 'with_mask (105).jpg', '274-with-mask.jpg', 'masked (1460).jpg', '407-with-mask.jpg', 'masked (1338).jpg', '36-with-mask.jpg', 'masked (1890).jpg', 'masked (1660).jpg', '295-with-mask.jpg', '126-with-mask.jpg', 'with_mask (92).jpg', 'masked (1290).jpg', 'with_maska (22).jpg', 'masked (1431).jpg', 'with_mask (91).jpg', 'masked (1311).jpg', 'with_mask (38).jpg', '37-with-mask.jpg', 'masked (1493).jpg', '172-with-mask.jpg', 'masked (1866).jpg', '356-with-mask.jpg', '290-with-mask.jpg', '128-with-mask.jpg', 'masked (1315).jpg', 'masked (1358).jpg', '96-with-mask.jpg', 'with_maska (29).jpg', '277-with-mask.jpg', '11-with-mask.jpg', '408-with-mask.jpg', '109-with-mask.jpg', '299-with-mask.jpg', 'masked (1386).jpg', 'masked (1329).jpg', '72-with-mask.jpg', '453-with-mask.jpg', 'masked (1688).jpg', '344-with-mask.jpg', 'masked (1450).jpg', '151-with-mask.jpg', '99-with-mask.jpg', '93-with-mask.jpg', 'masked (1691).jpg', 'masked (1316).jpg', 'masked (1536).jpg', 'masked (1488).jpg', 'with_mask (65).jpg', '171-with-mask.jpg', 'with_maskb (8).jpg', '419-with-mask.jpg', '325-with-mask.jpg', '385-with-mask.jpg', 'masked (1306).jpg', 'masked (1699).jpg', 'masked (1570).jpg', '314-with-mask.jpg', 'masked (1441).jpg', 'masked (1292).jpg', '287-with-mask.jpg', 'masked (1531).jpg', 'masked (1882).jpg', 'with_mask (72).jpg', 'masked (1258).jpg', 'masked (1694).jpg', '34-with-mask.jpg', '4-with-mask.jpg', 'masked (1559).jpg', '430-with-mask.jpg', '279-with-mask.jpg', 'masked (1623).jpg', '304-with-mask.jpg', '288-with-mask.jpg', '401-with-mask.jpg', 'masked (1373).jpg', 'with_mask (67).jpg', 'masked (1597).jpg', 'masked (1462).jpg', 'masked (1606).jpg', 'with_mask (25).jpg', 'with_mask (85).jpg', 'masked (1350).jpg', '272-with-mask.jpg', '223-with-mask.jpg', '349-with-mask.jpg', '436-with-mask.jpg', '395-with-mask.jpg', '62-with-mask.jpg', 'masked (1272).jpg', '70-with-mask.jpg', 'masked (1356).jpg', 'with_mask (55).jpg', 'masked (1455).jpg', 'masked (5).jpg', 'masked (1698).jpg', 'masked (1910).jpg', 'masked (1876).jpg', '402-with-mask.jpg', 'masked (1516).jpg', 'masked (1478).jpg', 'masked (1659).jpg', 'masked (1696).jpg', 'masked (1603).jpg', '120-with-mask.jpg', 'with_maska (27).jpg', '451-with-mask.jpg', '173-with-mask.jpg', 'with_mask (31).jpg', '218-with-mask.jpg', 'masked (1894).jpg', '64-with-mask.jpg', 'masked (1487).jpg', '318-with-mask.jpg', 'masked (1472).jpg', 'masked (1395).jpg', 'with_mask (24).jpg', 'masked (1507).jpg', 'masked (1429).jpg', '298-with-mask.jpg', 'masked (1274).jpg', 'masked (1682).jpg', '398-with-mask.jpg', '466-with-mask.jpg', 'with_mask (76).jpg', 'masked (1273).jpg', '276-with-mask.jpg', 'masked (1650).jpg', 'masked (1512).jpg', '445-with-mask.jpg', 'masked (1685).jpg', 'masked (1520).jpg', 'with_mask (69).jpg', 'masked (1545).jpg', 'masked (1382).jpg', '81-with-mask.jpg', '56-with-mask.jpg', '263-with-mask.jpg', '369-with-mask.jpg', '137-with-mask.jpg', 'masked (1432).jpg', '351-with-mask.jpg', '256-with-mask.jpg', 'masked (1557).jpg', 'masked (1610).jpg', 'masked (1489).jpg', 'masked (1897).jpg', 'with_mask (17).jpg', '281-with-mask.jpg', '161-with-mask.jpg', 'masked (1284).jpg', '30-with-mask.jpg', '74-with-mask.jpg', '440-with-mask.jpg', 'masked (1424).jpg', 'masked (1587).jpg', 'masked (1461).jpg', 'masked (1631).jpg', 'with_mask (84).jpg', 'with_mask (58).jpg', 'masked (1476).jpg', '238-with-mask.jpg', 'masked (1388).jpg', 'masked (1662).jpg', '186-with-mask.jpg', 'with_mask (96).jpg', '225-with-mask.jpg', '232-with-mask.jpg', 'masked (1543).jpg', '198-with-mask.jpg', 'masked (1357).jpg', '335-with-mask.jpg', '3-with-mask.jpg', '229-with-mask.jpg', 'masked (1611).jpg', 'masked (1259).jpg', '414-with-mask.jpg', 'masked (1881).jpg', 'masked (1630).jpg', '366-with-mask.jpg', '133-with-mask.jpg', 'masked (1494).jpg', 'masked (1593).jpg', 'masked (1592).jpg', '155-with-mask.jpg', 'masked (1654).jpg', 'masked (1608).jpg', 'masked (1583).jpg', '270-with-mask.jpg', 'masked (1422).jpg', '13-with-mask.jpg', '432-with-mask.jpg', '5-with-mask.jpg', 'masked (1633).jpg', '48-with-mask.jpg', '439-with-mask.jpg', '10-with-mask.jpg', '417-with-mask.jpg', '397-with-mask.jpg', 'masked (1270).jpg', '319-with-mask.jpg', '257-with-mask.jpg', 'with_maska (23).jpg', '124-with-mask.jpg', 'with_mask (29).jpg', 'with_mask (41).jpg', 'with_mask (8).jpg', 'masked (1530).jpg', '12-with-mask.jpg', '358-with-mask.jpg', '334-with-mask.jpg', '204-with-mask.jpg', 'with_maska (5).jpg', 'masked (1534).jpg', '384-with-mask.jpg', 'masked (1339).jpg', '179-with-mask.jpg', '135-with-mask.jpg', '41-with-mask.jpg', '282-with-mask.jpg', '46-with-mask.jpg', 'masked (1681).jpg', 'masked (1575).jpg', 'masked (1904).jpg', 'masked (1885).jpg', 'masked (1508).jpg', 'with_maska (13).jpg', 'masked (1423).jpg', 'with_mask (6).jpg', 'masked (1649).jpg', 'masked (1589).jpg', 'masked (1451).jpg', 'masked (1692).jpg', '92-with-mask.jpg', '454-with-mask.jpg', '40-with-mask.jpg', '253-with-mask.jpg', 'with_mask (60).jpg', 'with_mask (10).jpg', 'with_mask (56).jpg', 'masked (1372).jpg', 'masked (1558).jpg', 'masked (1701).jpg', 'masked (1452).jpg', '217-with-mask.jpg', 'masked (1544).jpg', 'masked (1324).jpg', 'masked (1342).jpg', 'masked (1383).jpg', '239-with-mask.jpg', '427-with-mask.jpg', 'masked (1600).jpg', 'masked (1436).jpg', 'masked (1407).jpg', 'masked (1391).jpg', '381-with-mask.jpg', 'masked (1568).jpg', 'masked (1640).jpg', 'masked (1522).jpg', 'masked (1278).jpg', '463-with-mask.jpg', 'masked (1481).jpg', '478-with-mask.jpg', 'masked (1912).jpg', 'masked (1362).jpg', 'masked (1327).jpg', 'masked (1323).jpg', '404-with-mask.jpg', '342-with-mask.jpg', 'masked (1642).jpg', 'masked (1314).jpg', '368-with-mask.jpg', 'with_mask (51).jpg', 'masked (1321).jpg', '134-with-mask.jpg', 'masked (1425).jpg', 'masked (4).jpg', 'masked (1428).jpg', 'masked (1305).jpg', 'masked (1333).jpg', 'masked (1880).jpg', '116-with-mask.jpg', '212-with-mask.jpg', 'masked (1889).jpg', 'masked (1393).jpg', '101-with-mask.jpg', 'masked (1419).jpg', 'with_mask (37).jpg', 'with_mask (80).jpg', '461-with-mask.jpg', 'masked (1615).jpg', '348-with-mask.jpg', '441-with-mask.jpg', 'masked (1313).jpg', '144-with-mask.jpg', '447-with-mask.jpg', '273-with-mask.jpg', 'masked (1905).jpg', '481-with-mask.jpg', '185-with-mask.jpg', '207-with-mask.jpg', '183-with-mask.jpg', 'masked (1515).jpg', 'masked (1588).jpg', '88-with-mask.jpg', '181-with-mask.jpg', 'masked (1445).jpg', 'masked (1406).jpg', '141-with-mask.jpg', 'masked (1868).jpg', 'masked (1486).jpg', '125-with-mask.jpg', 'with_mask (77).jpg', '176-with-mask.jpg', '85-with-mask.jpg', 'masked (1604).jpg', '170-with-mask.jpg', 'with_mask (53).jpg', '177-with-mask.jpg', 'with_mask (5).jpg', 'masked (1900).jpg', '259-with-mask.jpg', 'masked (1517).jpg', '117-with-mask.jpg', '420-with-mask.jpg', '480-with-mask.jpg', '416-with-mask.jpg', '452-with-mask.jpg', 'masked (1264).jpg', 'with_maskb (14).jpg', 'with_mask (99).jpg', 'masked (1377).jpg', 'with_mask (23).jpg', '364-with-mask.jpg', 'masked (1526).jpg', '50-with-mask.jpg', '444-with-mask.jpg', 'masked (1502).jpg', '184-with-mask.jpg', 'masked (1349).jpg', '338-with-mask.jpg', '51-with-mask.jpg', 'masked (1301).jpg', '291-with-mask.jpg', 'with_mask (15).jpg', 'masked (1703).jpg', 'masked (1527).jpg', '190-with-mask.jpg', '323-with-mask.jpg', 'masked (1528).jpg', 'masked (1371).jpg', '260-with-mask.jpg', 'masked (1365).jpg', 'with_mask (45).jpg', 'masked (1303).jpg', 'masked (1418).jpg', '392-with-mask.jpg', 'masked (1524).jpg', '442-with-mask.jpg', 'masked (1605).jpg', '268-with-mask.jpg', '471-with-mask.jpg', 'masked (1282).jpg', 'masked (1613).jpg', 'masked (1310).jpg', 'masked (1433).jpg', '167-with-mask.jpg', 'masked (1326).jpg', 'masked (1598).jpg', '49-with-mask.jpg', 'masked (1467).jpg', 'with_mask (20).jpg', 'masked (1434).jpg', '322-with-mask.jpg', 'masked (1565).jpg', '224-with-mask.jpg', '438-with-mask.jpg', '240-with-mask.jpg', 'masked (1617).jpg', '332-with-mask.jpg', 'masked (1398).jpg', '132-with-mask.jpg', '473-with-mask.jpg', 'masked (1482).jpg', '347-with-mask.jpg', 'masked (1276).jpg', '464-with-mask.jpg', 'masked (1490).jpg', 'masked (1427).jpg', '211-with-mask.jpg', 'masked (1577).jpg', 'masked (1668).jpg', '306-with-mask.jpg', 'masked (1602).jpg', 'masked (1416).jpg', 'masked (1466).jpg', '27-with-mask.jpg', 'masked (1341).jpg', 'with_mask (86).jpg', 'masked (1464).jpg', 'with_mask (22).jpg', 'masked (1498).jpg', '159-with-mask.jpg', 'masked (1678).jpg', 'with_mask (97).jpg', '393-with-mask.jpg', '112-with-mask.jpg', '94-with-mask.jpg', 'masked (1483).jpg', 'with_mask (1).jpg', 'masked (1379).jpg', 'masked (1265).jpg', '113-with-mask.jpg', '475-with-mask.jpg', 'masked (1677).jpg', '209-with-mask.jpg', 'masked (1626).jpg', 'with_mask (7).jpg', 'masked (1533).jpg', 'with_mask (62).jpg', 'masked (1646).jpg', 'masked (1405).jpg', '459-with-mask.jpg', 'with_mask (103).jpg', 'masked (1877).jpg', '472-with-mask.jpg', 'masked (1915).jpg', '278-with-mask.jpg', '458-with-mask.jpg', '301-with-mask.jpg', 'masked (1289).jpg', '31-with-mask.jpg', '7-with-mask.jpg', '302-with-mask.jpg', '0-with-mask.jpg', '267-with-mask.jpg', 'masked (1669).jpg', 'masked (1869).jpg', 'masked (1317).jpg', 'masked (1569).jpg', '479-with-mask.jpg', '59-with-mask.jpg', 'with_maskb (3).jpg', 'masked (1456).jpg', 'masked (1479).jpg', 'with_maskb (12).jpg', 'pra3.jpg', 'masked (1547).jpg', 'masked (1647).jpg', '467-with-mask.jpg', 'masked (1535).jpg', '115-with-mask.jpg', 'masked (1347).jpg', 'masked (1330).jpg', 'with_maska (7).jpg', 'with_maska (21).jpg', 'masked (1546).jpg', 'masked (1874).jpg', '42-with-mask.jpg', '203-with-mask.jpg', 'masked (1864).jpg', '254-with-mask.jpg', 'masked (1412).jpg', '251-with-mask.jpg', 'masked (1475).jpg', '160-with-mask.jpg', '457-with-mask.jpg', 'masked (1635).jpg', 'with_maska (9).jpg', '111-with-mask.jpg', '455-with-mask.jpg', 'masked (1582).jpg', 'masked (1471).jpg', 'masked (1397).jpg', '327-with-mask.jpg', 'masked (1862).jpg', 'masked (1376).jpg', 'masked (1594).jpg', 'with_mask (46).jpg', '418-with-mask.jpg', '45-with-mask.jpg', '32-with-mask.jpg', 'masked (1702).jpg', '146-with-mask.jpg', 'with_mask (66).jpg', 'with_maska (12).jpg', 'with_maska (8).jpg', '353-with-mask.jpg', 'masked (1636).jpg', 'with_mask (82).jpg', '219-with-mask.jpg', '136-with-mask.jpg', 'masked (1867).jpg', '67-with-mask.jpg', 'masked (1387).jpg', 'masked (1634).jpg', 'with_mask (28).jpg', 'with_maska (1).jpg', 'with_mask (89).jpg', '192-with-mask.jpg', 'masked (1392).jpg', 'masked (1453).jpg', '202-with-mask.jpg', 'masked (1469).jpg', 'masked (1555).jpg', '245-with-mask.jpg', 'masked (1447).jpg', 'masked (1389).jpg', '308-with-mask.jpg', '396-with-mask.jpg', '147-with-mask.jpg', 'masked (1390).jpg', '68-with-mask.jpg', 'masked (1521).jpg', '317-with-mask.jpg', 'masked (1345).jpg', 'masked (1299).jpg', 'masked (1281).jpg', 'masked (1875).jpg', 'masked (1571).jpg', 'masked (1368).jpg', '195-with-mask.jpg', 'with_mask (100).jpg', '107-with-mask.jpg', 'masked (1686).jpg', 'masked (1667).jpg', 'masked (1893).jpg', 'masked (1285).jpg', '9-with-mask.jpg', '165-with-mask.jpg', '104-with-mask.jpg', '14-with-mask.jpg', 'masked (1394).jpg', '75-with-mask.jpg', '97-with-mask.jpg', 'masked (1470).jpg', 'masked (1902).jpg', '197-with-mask.jpg', 'masked (1302).jpg', 'masked (1595).jpg', '131-with-mask.jpg', 'masked (1499).jpg', 'masked (1550).jpg', '140-with-mask.jpg', '162-with-mask.jpg']
print (unmasked)
['unmasked (1511).jpg', 'unmasked (1406).jpg', 'unmasked (1454).jpg', 'unmasked (1549).jpg', 'unmasked (1491).jpg', 'unmasked (1459).jpg', 'unmasked (1514).jpg', 'unmasked (1342).jpg', 'unmasked (1741).jpg', '151.jpg', 'unmasked (1299).jpg', 'unmasked (1448).jpg', 'unmasked (1620).jpg', 'unmasked (1250).jpg', '159.jpg', 'unmasked (1476).jpg', 'unmasked (1582).jpg', 'unmasked (1592).jpg', 'unmasked (1399).jpg', 'unmasked (1481).jpg', 'unmasked (1293).jpg', 'unmasked (1858).jpg', 'unmasked (1383).jpg', 'unmasked (1714).jpg', 'unmasked (1307).jpg', 'unmasked (1425).jpg', 'unmasked (1314).jpg', 'unmasked (1597).jpg', 'unmasked (1563).jpg', 'unmasked (1538).jpg', 'unmasked (1653).jpg', 'unmasked (1567).jpg', 'unmasked (1477).jpg', 'unmasked (1551).jpg', 'unmasked (1566).jpg', 'unmasked (1498).jpg', 'unmasked (1418).jpg', 'unmasked (1330).jpg', 'unmasked (1458).jpg', 'unmasked (1555).jpg', 'unmasked (1659).jpg', 'unmasked (1560).jpg', 'unmasked (1421).jpg', 'unmasked (1388).jpg', 'unmasked (1453).jpg', 'unmasked (1424).jpg', 'unmasked (1265).jpg', 'unmasked (1758).jpg', 'unmasked (1426).jpg', 'unmasked (1574).jpg', 'unmasked (1505).jpg', 'unmasked (1527).jpg', '201.jpg', 'unmasked (1442).jpg', 'unmasked (1859).jpg', 'unmasked (1263).jpg', 'unmasked (1835).jpg', 'unmasked (1769).jpg', 'unmasked (1631).jpg', 'unmasked (1374).jpg', 'unmasked (1822).jpg', 'unmasked (1564).jpg', 'unmasked (1739).jpg', 'unmasked (1471).jpg', 'unmasked (1609).jpg', 'unmasked (1697).jpg', 'unmasked (1438).jpg', 'unmasked (1573).jpg', 'unmasked (1338).jpg', 'unmasked (1606).jpg', 'unmasked (1266).jpg', '138.jpg', 'unmasked (1655).jpg', 'unmasked (1532).jpg', 'unmasked (1268).jpg', 'unmasked (1257).jpg', 'unmasked (1416).jpg', 'unmasked (1583).jpg', 'unmasked (1251).jpg', 'unmasked (1409).jpg', 'unmasked (1520).jpg', 'unmasked (1384).jpg', 'unmasked (1276).jpg', 'unmasked (1513).jpg', 'unmasked (1535).jpg', 'unmasked (1585).jpg', 'unmasked (1439).jpg', 'unmasked (1634).jpg', 'unmasked (1683).jpg', 'unmasked (1334).jpg', 'unmasked (1604).jpg', 'unmasked (1503).jpg', 'unmasked (1495).jpg', 'unmasked (1414).jpg', 'unmasked (1492).jpg', 'unmasked (1419).jpg', 'unmasked (1605).jpg', 'unmasked (1337).jpg', 'unmasked (1633).jpg', '149.jpg', 'unmasked (1600).jpg', 'unmasked (1819).jpg', 'unmasked (1267).jpg', 'unmasked (1616).jpg', 'unmasked (1410).jpg', 'unmasked (1673).jpg', 'unmasked (1677).jpg', 'unmasked (1793).jpg', 'unmasked (1557).jpg', 'unmasked (1264).jpg', 'unmasked (1530).jpg', 'unmasked (1647).jpg', 'unmasked (1524).jpg', 'unmasked (1372).jpg', 'unmasked (1885).jpg', 'unmasked (1544).jpg', 'unmasked (1813).jpg', 'unmasked (1433).jpg', 'unmasked (1303).jpg', 'unmasked (1335).jpg', 'unmasked (1843).jpg', 'unmasked (1493).jpg', 'unmasked (1912).jpg', 'unmasked (1302).jpg', 'unmasked (1834).jpg', 'unmasked (1432).jpg', 'unmasked (1310).jpg', 'unmasked (1569).jpg', '169.jpg', 'unmasked (1429).jpg', 'unmasked (1400).jpg', 'unmasked (1253).jpg', 'unmasked (1290).jpg', 'unmasked (1480).jpg', 'unmasked (1899).jpg', 'unmasked (1785).jpg', 'unmasked (1865).jpg', 'unmasked (1599).jpg', 'unmasked (1461).jpg', 'unmasked (1331).jpg', 'unmasked (1752).jpg', 'unmasked (1602).jpg', 'unmasked (1601).jpg', 'unmasked (1376).jpg', 'unmasked (1496).jpg', 'unmasked (1404).jpg', 'unmasked (1642).jpg', 'unmasked (1327).jpg', 'unmasked (1445).jpg', 'unmasked (1444).jpg', 'unmasked (1762).jpg', 'unmasked (1321).jpg', 'unmasked (1853).jpg', 'unmasked (1562).jpg', 'unmasked (1572).jpg', 'unmasked (1510).jpg', 'unmasked (1635).jpg', 'unmasked (1795).jpg', 'unmasked (1840).jpg', 'unmasked (1487).jpg', 'unmasked (1456).jpg', 'unmasked (1680).jpg', 'unmasked (1591).jpg', 'unmasked (1457).jpg', 'unmasked (1614).jpg', 'unmasked (1888).jpg', 'unmasked (1536).jpg', 'unmasked (1645).jpg', 'unmasked (1336).jpg', 'unmasked (1316).jpg', 'unmasked (1882).jpg', '148.jpg', 'unmasked (1540).jpg', 'unmasked (1443).jpg', 'unmasked (1381).jpg', 'unmasked (1255).jpg', 'unmasked (1746).jpg', 'unmasked (1534).jpg', 'unmasked (1761).jpg', 'unmasked (1378).jpg', 'unmasked (1391).jpg', 'unmasked (1462).jpg', 'unmasked (1800).jpg', 'unmasked (1663).jpg', 'unmasked (1618).jpg', 'unmasked (1674).jpg', 'unmasked (1638).jpg', 'unmasked (1537).jpg', 'unmasked (1473).jpg', 'unmasked (1518).jpg', 'unmasked (1512).jpg', 'unmasked (1525).jpg', 'unmasked (1332).jpg', 'unmasked (1886).jpg', '332.jpg', 'unmasked (1397).jpg', '137.jpg', 'unmasked (1565).jpg', 'unmasked (1415).jpg', 'unmasked (1529).jpg', 'unmasked (1413).jpg', 'unmasked (1531).jpg', 'unmasked (1596).jpg', 'unmasked (1648).jpg', '132.jpg', 'unmasked (1547).jpg', 'unmasked (1515).jpg', 'unmasked (1662).jpg', 'unmasked (1656).jpg', 'unmasked (1528).jpg', 'unmasked (1499).jpg', 'unmasked (1839).jpg', 'unmasked (1468).jpg', 'unmasked (1428).jpg', 'unmasked (1393).jpg', 'unmasked (1594).jpg', 'unmasked (1412).jpg', 'unmasked (1306).jpg', 'unmasked (1497).jpg', 'unmasked (1322).jpg', 'unmasked (1669).jpg', 'unmasked (1576).jpg', 'unmasked (1716).jpg', 'unmasked (1455).jpg', 'unmasked (1522).jpg', 'unmasked (1581).jpg', 'unmasked (1389).jpg', 'unmasked (1450).jpg', 'unmasked (1295).jpg', 'unmasked (1340).jpg', 'unmasked (1309).jpg', 'unmasked (1869).jpg', 'unmasked (1312).jpg', 'unmasked (1472).jpg', 'unmasked (1603).jpg', 'unmasked (1866).jpg', 'unmasked (1396).jpg', 'unmasked (1777).jpg', 'unmasked (1619).jpg', 'unmasked (1275).jpg', 'unmasked (1559).jpg', 'unmasked (1452).jpg', 'unmasked (1539).jpg', 'unmasked (1411).jpg', 'unmasked (1670).jpg', 'unmasked (1377).jpg', '0.jpg', 'unmasked (1460).jpg', '134.jpg', 'unmasked (1324).jpg', 'unmasked (1301).jpg', 'unmasked (1570).jpg', 'unmasked (1788).jpg', 'unmasked (1615).jpg', 'unmasked (1584).jpg', 'unmasked (1298).jpg', 'unmasked (1519).jpg', 'unmasked (1794).jpg', 'unmasked (1343).jpg', 'unmasked (1575).jpg', 'unmasked (1344).jpg', 'unmasked (1463).jpg', 'unmasked (1621).jpg', 'unmasked (1699).jpg', 'unmasked (1326).jpg', 'unmasked (1748).jpg', 'unmasked (1501).jpg', 'unmasked (1900).jpg', 'unmasked (1437).jpg', 'unmasked (1622).jpg', 'unmasked (1649).jpg', 'unmasked (1864).jpg', 'unmasked (1318).jpg', 'unmasked (1380).jpg', 'unmasked (1904).jpg', 'unmasked (1465).jpg', 'unmasked (1385).jpg', 'unmasked (1630).jpg', 'unmasked (1671).jpg', 'unmasked (1617).jpg', 'unmasked (1561).jpg', 'unmasked (1479).jpg', 'unmasked (1607).jpg', 'unmasked (1271).jpg', 'unmasked (1402).jpg', 'unmasked (1256).jpg', 'unmasked (1624).jpg', 'unmasked (1854).jpg', 'unmasked (1632).jpg', 'unmasked (1852).jpg', 'unmasked (1626).jpg', 'unmasked (1466).jpg', 'unmasked (1430).jpg', 'unmasked (1308).jpg', 'unmasked (1593).jpg', 'unmasked (1807).jpg', 'unmasked (1586).jpg', 'unmasked (1277).jpg', 'unmasked (1279).jpg', 'unmasked (1558).jpg', 'unmasked (1856).jpg', 'unmasked (1328).jpg', 'unmasked (1469).jpg', 'unmasked (1489).jpg', 'unmasked (1447).jpg', 'unmasked (1580).jpg', 'unmasked (1484).jpg', 'unmasked (1486).jpg', 'unmasked (1292).jpg', 'unmasked (1650).jpg', 'unmasked (1553).jpg', '431.jpg', 'unmasked (1289).jpg', 'unmasked (1341).jpg', 'unmasked (1709).jpg', 'unmasked (1434).jpg', 'unmasked (1827).jpg', 'unmasked (1401).jpg', 'unmasked (1287).jpg', 'unmasked (1502).jpg', 'unmasked (1313).jpg', 'unmasked (1730).jpg', 'unmasked (1577).jpg', 'unmasked (1278).jpg', 'unmasked (1872).jpg', 'unmasked (1390).jpg', 'unmasked (1311).jpg', 'unmasked (1422).jpg', 'unmasked (1490).jpg', 'unmasked (1398).jpg', 'unmasked (1417).jpg', 'unmasked (1533).jpg', 'unmasked (1382).jpg', 'unmasked (1688).jpg', 'unmasked (1408).jpg', 'unmasked (1796).jpg', 'unmasked (1506).jpg', 'unmasked (1464).jpg', 'unmasked (1317).jpg', 'unmasked (1627).jpg', 'unmasked (1571).jpg', 'unmasked (1286).jpg', 'unmasked (1550).jpg', 'unmasked (1339).jpg', 'unmasked (1482).jpg', 'unmasked (1323).jpg', 'unmasked (1407).jpg', 'unmasked (1891).jpg', 'unmasked (1282).jpg', 'unmasked (1903).jpg', 'unmasked (1297).jpg', 'unmasked (1625).jpg', 'unmasked (1552).jpg', 'unmasked (1325).jpg', 'unmasked (1636).jpg', 'unmasked (1778).jpg', 'unmasked (1644).jpg', 'unmasked (1333).jpg', 'unmasked (1732).jpg', 'unmasked (1556).jpg', 'unmasked (1523).jpg', 'unmasked (1488).jpg', 'unmasked (1504).jpg', 'unmasked (1623).jpg', 'unmasked (1543).jpg', 'unmasked (1897).jpg', 'unmasked (1280).jpg', 'unmasked (1262).jpg', 'unmasked (1545).jpg', 'unmasked (1578).jpg', 'unmasked (1485).jpg', 'unmasked (1375).jpg', 'unmasked (1588).jpg', 'unmasked (1394).jpg', 'unmasked (1672).jpg', 'unmasked (1542).jpg', 'unmasked (1261).jpg', 'unmasked (1494).jpg', 'unmasked (1517).jpg', 'unmasked (1907).jpg', 'unmasked (1387).jpg', 'unmasked (1637).jpg', 'unmasked (1894).jpg', 'unmasked (1478).jpg', 'unmasked (1708).jpg', 'unmasked (1427).jpg', 'unmasked (1579).jpg', 'unmasked (1803).jpg', 'unmasked (1646).jpg', 'unmasked (1815).jpg', 'unmasked (1386).jpg', 'unmasked (1467).jpg', 'unmasked (1392).jpg', 'unmasked (1764).jpg', 'unmasked (1435).jpg', 'unmasked (1319).jpg', 'unmasked (1652).jpg', 'unmasked (1446).jpg', 'unmasked (1792).jpg', 'unmasked (1449).jpg', 'unmasked (1285).jpg', 'unmasked (1610).jpg', 'unmasked (1824).jpg', 'unmasked (1483).jpg', '195.jpg', 'unmasked (1420).jpg', 'unmasked (1690).jpg', 'unmasked (1395).jpg', 'unmasked (1440).jpg', '49.jpg', 'unmasked (1875).jpg', 'unmasked (1587).jpg', 'unmasked (1441).jpg', 'unmasked (1272).jpg', 'unmasked (1508).jpg', 'unmasked (1867).jpg', 'unmasked (1403).jpg', 'unmasked (1315).jpg', 'unmasked (1526).jpg', 'unmasked (1470).jpg', '178.jpg', 'unmasked (1725).jpg', 'unmasked (1451).jpg', 'unmasked (1500).jpg', 'unmasked (1288).jpg', 'unmasked (1613).jpg', 'unmasked (1269).jpg', 'unmasked (1733).jpg', 'unmasked (1763).jpg', 'unmasked (1521).jpg', 'unmasked (1304).jpg', 'unmasked (1612).jpg', 'unmasked (1436).jpg', 'unmasked (1595).jpg', 'unmasked (1507).jpg', 'unmasked (1598).jpg', 'unmasked (1291).jpg', 'unmasked (1546).jpg', 'unmasked (1541).jpg', 'unmasked (1274).jpg', 'unmasked (1629).jpg', 'unmasked (1509).jpg', 'unmasked (1611).jpg', 'unmasked (1475).jpg', 'unmasked (1252).jpg', 'unmasked (1405).jpg', 'unmasked (1639).jpg', '63.jpg', 'unmasked (1879).jpg', 'unmasked (1270).jpg', 'unmasked (1260).jpg', 'unmasked (1682).jpg', 'unmasked (1329).jpg', 'unmasked (1628).jpg', 'unmasked (1654).jpg', 'unmasked (1516).jpg', 'unmasked (1568).jpg', 'unmasked (1876).jpg', 'unmasked (1640).jpg', 'unmasked (1554).jpg', 'unmasked (1651).jpg']
val_count_unmsk =round(imb/100*VALIDATION_SIZE)
val_count_msk=VALIDATION_SIZE-val_count_unmsk
test_count_unmsk=round(imb/100*TEST_SIZE)+val_count_unmsk
test_count_msk=TEST_SIZE-test_count_unmsk+val_count_unmsk+val_count_msk
print ("Train samples")
print ("without mask files:[{}:{}]".format(test_count_unmsk,len(unmasked)))
print ("without mask files:[{}:{}]".format(test_count_msk,len(masked)))
print ('\n')
print ("Test samples")
print ("without mask files:[{}:{}]".format(val_count_unmsk,test_count_unmsk))
print ("with mask files:[{}:{}]".format(val_count_msk,test_count_msk))
print ('\n')
print ("Validation samples")
print ("without mask files:[{}:{}]".format(0,val_count_unmsk))
print ("with mask files:[{}:{}]".format(0,val_count_msk))
Train samples without mask files:[276:461] without mask files:[124:1049] Test samples without mask files:[207:276] with mask files:[93:124] Validation samples without mask files:[0:207] with mask files:[0:93]
val_files=unmasked[:val_count_unmsk]
val_files.extend(masked[:val_count_msk])
test_files=unmasked[val_count_unmsk:test_count_unmsk]
test_files.extend (masked[val_count_msk:test_count_msk])
train_files=unmasked[test_count_unmsk:]
train_files.extend (masked[test_count_msk:])
print (len(train_files), ' files set aside for training ')
print (len (val_files), ' files set aside for validation')
print (len (test_files), ' files set aside for final testing')
1110 files set aside for training 300 files set aside for validation 100 files set aside for final testing
def copy_samples_folders(samples,folders):
i=0
print ("Copying files.......")
for sample in samples:
target=folders[i]
print ("Copying files to ", target, "......")
for file in sample:
flname=file[:-4]
img_file=flname+IMAGE_FILE_EXTENSION
shutil.copy(DATA_FOLDER+'/obj/'+img_file, DATA_FOLDER+'/'+target+'/'+img_file)
#print ('copied ',img_file)
annot_flname= flname+ANNOT_FILE_EXTENSION
shutil.copy(DATA_FOLDER+'/obj/'+annot_flname, DATA_FOLDER+'/'+target+'/'+annot_flname)
#print ('copied ',annot_flname)
i+=1
print ("Copied all the files")
Copied all the files
samples=[train_files,val_files,test_files ]
folders=['train','validation', 'test']
copy_samples_folders(samples,folders)
Copying files....... Copying files to train ...... Copying files to validation ...... Copying files to test ......
len(os.listdir('face_mask_data/train'))/2
1110.0
len(os.listdir('face_mask_data/validation'))/2
300.0
len(os.listdir('face_mask_data/test'))/2
100.0
df_images=pd.DataFrame( columns=['file', 'width','height', 'with mask'])
def get_img_size(files_list, location):
height=[]
width=[]
for file in files_list:
img=cv2.imread(location+file)
h, w,_ = img.shape
height.append(h)
width.append(w)
del img
return (height, width)
height, width = get_img_size(file_names, location=DATA_FOLDER+'/obj/')
df_images['file']=file_names
df_images['width']=width
df_images['height']=height
df_images['with mask']= df_images['file'].apply (lambda x: 0 if x in unmasked else 1)
df_images.sample(20)
| file | width | height | with mask | |
|---|---|---|---|---|
| 1146 | 26-with-mask.jpg | 444 | 455 | 1 |
| 808 | masked (1669).jpg | 950 | 534 | 1 |
| 623 | masked (1484).jpg | 500 | 500 | 1 |
| 1283 | 413-with-mask.jpg | 320 | 428 | 1 |
| 93 | unmasked (1480).jpg | 290 | 174 | 0 |
| 399 | with_mask (48).jpg | 980 | 552 | 1 |
| 306 | unmasked (1794).jpg | 320 | 433 | 0 |
| 844 | masked (1864).jpg | 275 | 183 | 1 |
| 226 | unmasked (1617).jpg | 183 | 275 | 0 |
| 739 | masked (1600).jpg | 1280 | 720 | 1 |
| 1350 | 49-with-mask.jpg | 182 | 276 | 1 |
| 219 | unmasked (1610).jpg | 276 | 183 | 0 |
| 590 | masked (1451).jpg | 1300 | 1001 | 1 |
| 611 | masked (1472).jpg | 1000 | 1000 | 1 |
| 90 | unmasked (1477).jpg | 179 | 281 | 0 |
| 774 | masked (1635).jpg | 1200 | 800 | 1 |
| 825 | masked (1687).jpg | 1200 | 800 | 1 |
| 555 | masked (1416).jpg | 634 | 392 | 1 |
| 1304 | 435-with-mask.jpg | 960 | 768 | 1 |
| 493 | with_maskb (3).jpg | 960 | 639 | 1 |
df_images['width'].plot.hist( bins= 50, alpha=0.3);
plt.title("Image width distribution");
df_images['height'].plot.hist( bins= 50, alpha=0.5);
plt.title("Image height distribution");
df_images['with mask'].value_counts().plot(kind ='bar');
plt.title("Class distribution: 1: with mask, 0: with out mask");
df_images[['width', 'height']].describe()
| width | height | |
|---|---|---|
| count | 1510.000000 | 1510.000000 |
| mean | 613.530464 | 568.133113 |
| std | 561.755724 | 478.900608 |
| min | 89.000000 | 105.000000 |
| 25% | 300.000000 | 340.000000 |
| 50% | 327.000000 | 432.000000 |
| 75% | 800.000000 | 675.000000 |
| max | 5760.000000 | 5412.000000 |
FIG_SIZE=(613,570)
Display faces with and without mask
def display_images(img_file_list,location="", num_samples=10, resize=(500, 500)): # method to display a list of images in a row
i=0
files= [img_file_list[j] for j in random.sample(range(0, len(img_file_list)), num_samples)]
f= plt.figure(figsize=(40,40))
for file in files:
img=cv2.imread(location+file)
img=cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
f.add_subplot(1, len(files), i + 1)
plt.imshow(cv2.resize(img, resize))
plt.axis('off')
i+=1
plt.show()
print ("Displaying faces with mask")
display_images(masked, location=DATA_FOLDER+'/obj/',resize=FIG_SIZE )
print ("Displaying faces without mask")
display_images(unmasked, location=DATA_FOLDER+'/obj/', resize=FIG_SIZE)
Displaying faces with mask
Displaying faces without mask
yaml_lines=["train: " + PROJECT_PATH + "/"+ DATA_FOLDER +"/train", "val: " + PROJECT_PATH + "/"+ DATA_FOLDER +"/validation" , "test: " + PROJECT_PATH + "/"+ DATA_FOLDER +"/test", "nc: "+ str(NO_OF_CLASSES), "names: "+ str(NAMES)]
for line in yaml_lines:
print (line)
train: /content/drive/My Drive/face_mask_detection/face_mask_data/train val: /content/drive/My Drive/face_mask_detection/face_mask_data/validation test: /content/drive/My Drive/face_mask_detection/face_mask_data/test nc: 2 names: ['MASK', 'NO MASK']
f = open(YAML_FILE, "w")
for line in yaml_lines:
print (line)
f.write(line)
f.write
f.close()
train: /content/drive/My Drive/face_mask_detection/face_mask_data/train val: /content/drive/My Drive/face_mask_detection/face_mask_data/validation test: /content/drive/My Drive/face_mask_detection/face_mask_data/test nc: 2 names: ['MASK', 'NO MASK']
!ls
archive.zip face_mask_detection_model.ipynb robo.txt download mask_detection.yaml yolov5 face_mask_data OIDv4_ToolKit 'yolov5_mask detection'
!python yolov5/train.py --img 416 --batch 16 --epochs 30 --data mask_detection.yaml --cfg yolov5/models/yolov5s.yaml
Downloading https://ultralytics.com/assets/Arial.ttf to /root/.config/Ultralytics/Arial.ttf... train: weights=yolov5/yolov5s.pt, cfg=yolov5/models/yolov5s.yaml, data=mask_detection.yaml, hyp=yolov5/data/hyps/hyp.scratch.yaml, epochs=30, batch_size=16, imgsz=416, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, evolve=None, bucket=, cache=None, image_weights=False, device=, multi_scale=False, single_cls=False, adam=False, sync_bn=False, workers=8, project=yolov5/runs/train, name=exp, exist_ok=False, quad=False, linear_lr=False, label_smoothing=0.0, patience=100, freeze=0, save_period=-1, local_rank=-1, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest github: up to date with https://github.com/ultralytics/yolov5 ✅ YOLOv5 🚀 2021-12-14 torch 1.10.0+cu111 CUDA:0 (Tesla P100-PCIE-16GB, 16281MiB) hyperparameters: lr0=0.01, lrf=0.1, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=0.05, cls=0.5, cls_pw=1.0, obj=1.0, obj_pw=1.0, iou_t=0.2, anchor_t=4.0, fl_gamma=0.0, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0 Weights & Biases: run 'pip install wandb' to automatically track and visualize YOLOv5 🚀 runs (RECOMMENDED) TensorBoard: Start with 'tensorboard --logdir yolov5/runs/train', view at http://localhost:6006/ Downloading https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt to yolov5/yolov5s.pt... 100% 14.0M/14.0M [00:00<00:00, 67.4MB/s] Overriding model.yaml nc=80 with nc=2 from n params module arguments 0 -1 1 3520 models.common.Conv [3, 32, 6, 2, 2] 1 -1 1 18560 models.common.Conv [32, 64, 3, 2] 2 -1 1 18816 models.common.C3 [64, 64, 1] 3 -1 1 73984 models.common.Conv [64, 128, 3, 2] 4 -1 2 115712 models.common.C3 [128, 128, 2] 5 -1 1 295424 models.common.Conv [128, 256, 3, 2] 6 -1 3 625152 models.common.C3 [256, 256, 3] 7 -1 1 1180672 models.common.Conv [256, 512, 3, 2] 8 -1 1 1182720 models.common.C3 [512, 512, 1] 9 -1 1 656896 models.common.SPPF [512, 512, 5] 10 -1 1 131584 models.common.Conv [512, 256, 1, 1] 11 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 12 [-1, 6] 1 0 models.common.Concat [1] 13 -1 1 361984 models.common.C3 [512, 256, 1, False] 14 -1 1 33024 models.common.Conv [256, 128, 1, 1] 15 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 16 [-1, 4] 1 0 models.common.Concat [1] 17 -1 1 90880 models.common.C3 [256, 128, 1, False] 18 -1 1 147712 models.common.Conv [128, 128, 3, 2] 19 [-1, 14] 1 0 models.common.Concat [1] 20 -1 1 296448 models.common.C3 [256, 256, 1, False] 21 -1 1 590336 models.common.Conv [256, 256, 3, 2] 22 [-1, 10] 1 0 models.common.Concat [1] 23 -1 1 1182720 models.common.C3 [512, 512, 1, False] 24 [17, 20, 23] 1 18879 models.yolo.Detect [2, [[10, 13, 16, 30, 33, 23], [30, 61, 62, 45, 59, 119], [116, 90, 156, 198, 373, 326]], [128, 256, 512]] Model Summary: 270 layers, 7025023 parameters, 7025023 gradients, 15.9 GFLOPs Transferred 342/349 items from yolov5/yolov5s.pt Scaled weight_decay = 0.0005 optimizer: SGD with parameter groups 57 weight, 60 weight (no decay), 60 bias albumentations: version 1.0.3 required by YOLOv5, but version 0.1.12 is currently installed train: Scanning '/content/drive/My Drive/face_mask_detection/face_mask_data/train' images and labels...1110 found, 0 missing, 0 empty, 0 corrupted: 100% 1110/1110 [00:07<00:00, 155.10it/s] train: New cache created: /content/drive/My Drive/face_mask_detection/face_mask_data/train.cache val: Scanning '/content/drive/My Drive/face_mask_detection/face_mask_data/validation' images and labels...300 found, 0 missing, 0 empty, 0 corrupted: 100% 300/300 [00:02<00:00, 101.16it/s] val: New cache created: /content/drive/My Drive/face_mask_detection/face_mask_data/validation.cache Plotting labels to yolov5/runs/train/exp/labels.jpg... AutoAnchor: 5.21 anchors/target, 1.000 Best Possible Recall (BPR). Current anchors are a good fit to dataset ✅ Image sizes 416 train, 416 val Using 2 dataloader workers Logging results to yolov5/runs/train/exp Starting training for 30 epochs... Epoch gpu_mem box obj cls labels img_size 0/29 1.8G 0.1015 0.02815 0.02518 17 416: 100% 70/70 [00:59<00:00, 1.18it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.76it/s] all 300 488 0.164 0.286 0.128 0.027 Epoch gpu_mem box obj cls labels img_size 1/29 1.81G 0.07266 0.03443 0.01724 14 416: 100% 70/70 [00:55<00:00, 1.27it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.87it/s] all 300 488 0.449 0.578 0.492 0.203 Epoch gpu_mem box obj cls labels img_size 2/29 1.81G 0.06141 0.0284 0.01467 13 416: 100% 70/70 [00:59<00:00, 1.19it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.12it/s] all 300 488 0.42 0.61 0.5 0.148 Epoch gpu_mem box obj cls labels img_size 3/29 1.81G 0.05691 0.02446 0.01238 13 416: 100% 70/70 [00:56<00:00, 1.23it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.92it/s] all 300 488 0.609 0.624 0.561 0.255 Epoch gpu_mem box obj cls labels img_size 4/29 1.81G 0.05334 0.0227 0.009626 16 416: 100% 70/70 [00:54<00:00, 1.27it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.89it/s] all 300 488 0.68 0.575 0.591 0.318 Epoch gpu_mem box obj cls labels img_size 5/29 1.81G 0.04967 0.02172 0.008544 24 416: 100% 70/70 [00:57<00:00, 1.22it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.23it/s] all 300 488 0.788 0.607 0.697 0.354 Epoch gpu_mem box obj cls labels img_size 6/29 1.81G 0.0479 0.01998 0.006707 21 416: 100% 70/70 [00:56<00:00, 1.23it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.04it/s] all 300 488 0.81 0.69 0.769 0.422 Epoch gpu_mem box obj cls labels img_size 7/29 1.81G 0.0501 0.02032 0.006029 16 416: 100% 70/70 [00:57<00:00, 1.23it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.95it/s] all 300 488 0.837 0.697 0.764 0.452 Epoch gpu_mem box obj cls labels img_size 8/29 1.81G 0.04745 0.01914 0.005932 21 416: 100% 70/70 [00:55<00:00, 1.25it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.10it/s] all 300 488 0.833 0.767 0.819 0.48 Epoch gpu_mem box obj cls labels img_size 9/29 1.81G 0.04405 0.01932 0.005148 19 416: 100% 70/70 [00:55<00:00, 1.27it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.88it/s] all 300 488 0.648 0.766 0.758 0.391 Epoch gpu_mem box obj cls labels img_size 10/29 1.81G 0.04338 0.01865 0.005017 25 416: 100% 70/70 [00:55<00:00, 1.27it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.96it/s] all 300 488 0.809 0.77 0.801 0.453 Epoch gpu_mem box obj cls labels img_size 11/29 1.81G 0.04038 0.01832 0.004129 16 416: 100% 70/70 [00:57<00:00, 1.23it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.07it/s] all 300 488 0.816 0.688 0.765 0.364 Epoch gpu_mem box obj cls labels img_size 12/29 1.81G 0.04424 0.01888 0.004227 12 416: 100% 70/70 [00:54<00:00, 1.28it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.11it/s] all 300 488 0.908 0.771 0.852 0.489 Epoch gpu_mem box obj cls labels img_size 13/29 1.81G 0.04041 0.01842 0.0042 22 416: 100% 70/70 [00:54<00:00, 1.28it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.04it/s] all 300 488 0.912 0.801 0.872 0.508 Epoch gpu_mem box obj cls labels img_size 14/29 1.81G 0.03802 0.0182 0.003936 28 416: 100% 70/70 [00:55<00:00, 1.26it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.07it/s] all 300 488 0.894 0.794 0.852 0.555 Epoch gpu_mem box obj cls labels img_size 15/29 1.81G 0.03672 0.01767 0.003718 15 416: 100% 70/70 [00:55<00:00, 1.26it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.12it/s] all 300 488 0.875 0.834 0.869 0.547 Epoch gpu_mem box obj cls labels img_size 16/29 1.81G 0.03474 0.01767 0.003417 9 416: 100% 70/70 [00:56<00:00, 1.25it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.29it/s] all 300 488 0.9 0.739 0.846 0.536 Epoch gpu_mem box obj cls labels img_size 17/29 1.81G 0.0333 0.01678 0.003225 19 416: 100% 70/70 [00:56<00:00, 1.24it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.01it/s] all 300 488 0.919 0.817 0.885 0.576 Epoch gpu_mem box obj cls labels img_size 18/29 1.81G 0.03246 0.01744 0.003159 20 416: 100% 70/70 [00:56<00:00, 1.25it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.21it/s] all 300 488 0.931 0.797 0.874 0.57 Epoch gpu_mem box obj cls labels img_size 19/29 1.81G 0.0306 0.01682 0.003334 19 416: 100% 70/70 [00:55<00:00, 1.26it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.13it/s] all 300 488 0.896 0.775 0.871 0.574 Epoch gpu_mem box obj cls labels img_size 20/29 1.81G 0.0303 0.01588 0.002467 12 416: 100% 70/70 [00:55<00:00, 1.27it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.05it/s] all 300 488 0.955 0.816 0.899 0.595 Epoch gpu_mem box obj cls labels img_size 21/29 1.81G 0.02881 0.01585 0.002321 19 416: 100% 70/70 [00:58<00:00, 1.19it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.16it/s] all 300 488 0.897 0.847 0.899 0.57 Epoch gpu_mem box obj cls labels img_size 22/29 1.81G 0.02825 0.01603 0.002046 15 416: 100% 70/70 [00:55<00:00, 1.26it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.37it/s] all 300 488 0.942 0.83 0.902 0.604 Epoch gpu_mem box obj cls labels img_size 23/29 1.81G 0.02719 0.01479 0.002313 14 416: 100% 70/70 [00:55<00:00, 1.26it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.98it/s] all 300 488 0.95 0.818 0.895 0.595 Epoch gpu_mem box obj cls labels img_size 24/29 1.81G 0.02708 0.01547 0.002379 27 416: 100% 70/70 [00:56<00:00, 1.23it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.99it/s] all 300 488 0.906 0.852 0.904 0.596 Epoch gpu_mem box obj cls labels img_size 25/29 1.81G 0.02603 0.01501 0.001776 12 416: 100% 70/70 [00:56<00:00, 1.24it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:05<00:00, 1.86it/s] all 300 488 0.931 0.828 0.897 0.599 Epoch gpu_mem box obj cls labels img_size 26/29 1.81G 0.02579 0.01499 0.002088 21 416: 100% 70/70 [00:56<00:00, 1.23it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.03it/s] all 300 488 0.95 0.828 0.909 0.608 Epoch gpu_mem box obj cls labels img_size 27/29 1.81G 0.02525 0.01413 0.002037 15 416: 100% 70/70 [00:56<00:00, 1.24it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.29it/s] all 300 488 0.928 0.882 0.919 0.613 Epoch gpu_mem box obj cls labels img_size 28/29 1.81G 0.02526 0.01463 0.001621 22 416: 100% 70/70 [00:56<00:00, 1.25it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.26it/s] all 300 488 0.929 0.861 0.912 0.614 Epoch gpu_mem box obj cls labels img_size 29/29 1.81G 0.02547 0.01477 0.001881 14 416: 100% 70/70 [00:57<00:00, 1.22it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:04<00:00, 2.18it/s] all 300 488 0.927 0.872 0.914 0.613 30 epochs completed in 0.526 hours. Optimizer stripped from yolov5/runs/train/exp/weights/last.pt, 14.3MB Optimizer stripped from yolov5/runs/train/exp/weights/best.pt, 14.3MB Validating yolov5/runs/train/exp/weights/best.pt... Fusing layers... Model Summary: 213 layers, 7015519 parameters, 0 gradients, 15.8 GFLOPs Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 10/10 [00:07<00:00, 1.28it/s] all 300 488 0.93 0.861 0.912 0.615 MASK 300 252 0.893 0.798 0.869 0.506 NO MASK 300 236 0.966 0.924 0.955 0.724 Results saved to yolov5/runs/train/exp
print ('The PR curve')
plt.figure(figsize=(10,10))
pr_curve_img=cv2.cvtColor(cv2.imread(PERFORMANCE_FILE_LOC+"/PR_curve.png"), cv2.COLOR_BGR2RGB)
plt.imshow(pr_curve_img);
plt.axis('off');
The PR curve
print ('The Confusion matrix')
plt.figure(figsize=(15,15))
pr_curve_img=cv2.cvtColor(cv2.imread(PERFORMANCE_FILE_LOC+"/confusion_matrix.png"), cv2.COLOR_BGR2RGB)
plt.imshow(pr_curve_img);
plt.axis('off');
The Confusion matrix
print ('Training details')
plt.figure(figsize=(20,20))
pr_curve_img=cv2.cvtColor(cv2.imread(PERFORMANCE_FILE_LOC+"/results.png"), cv2.COLOR_BGR2RGB)
plt.imshow(pr_curve_img);
plt.axis('off');
Training details
!python yolov5/detect.py --weights yolov5/runs/train/exp/weights/best.pt --img 416 --conf 0.5 --source face_mask_data/test
detect: weights=['yolov5/runs/train/exp/weights/best.pt'], source=face_mask_data/test, imgsz=[416, 416], conf_thres=0.5, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=yolov5/runs/detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False YOLOv5 🚀 2021-12-14 torch 1.10.0+cu111 CUDA:0 (Tesla P100-PCIE-16GB, 16281MiB) Fusing layers... Model Summary: 213 layers, 7015519 parameters, 0 gradients, 15.8 GFLOPs image 1/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/132.jpg: 320x416 1 NO MASK, Done. (0.015s) image 2/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/151.jpg: 416x288 1 NO MASK, Done. (0.016s) image 3/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/157-with-mask.jpg: 416x288 1 MASK, Done. (0.036s) image 4/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/170-with-mask.jpg: 416x352 1 MASK, Done. (0.016s) image 5/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/293-with-mask.jpg: 416x320 1 MASK, Done. (0.015s) image 6/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/294-with-mask.jpg: 416x320 1 MASK, Done. (0.010s) image 7/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/334-with-mask.jpg: 416x320 1 MASK, Done. (0.013s) image 8/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/348-with-mask.jpg: 416x320 1 MASK, Done. (0.011s) image 9/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/377-with-mask.jpg: 416x288 1 MASK, Done. (0.013s) image 10/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/382-with-mask.jpg: 416x320 1 MASK, Done. (0.020s) image 11/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/433-with-mask.jpg: 416x320 1 MASK, Done. (0.011s) image 12/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/443-with-mask.jpg: 256x416 1 MASK, Done. (0.016s) image 13/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/444-with-mask.jpg: 416x416 1 MASK, Done. (0.012s) image 14/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/57-with-mask.jpg: 416x288 1 MASK, Done. (0.012s) image 15/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/73-with-mask.jpg: 416x416 1 MASK, Done. (0.012s) image 16/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1270).jpg: 416x416 1 MASK, Done. (0.011s) image 17/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1283).jpg: 416x416 1 MASK, Done. (0.012s) image 18/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1387).jpg: 416x416 1 MASK, Done. (0.011s) image 19/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1417).jpg: 288x416 1 MASK, Done. (0.015s) image 20/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1427).jpg: 416x416 1 MASK, Done. (0.011s) image 21/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1572).jpg: 224x416 1 MASK, Done. (0.015s) image 22/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1584).jpg: 416x416 1 MASK, Done. (0.012s) image 23/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1601).jpg: 256x416 1 MASK, Done. (0.012s) image 24/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1621).jpg: 256x416 1 MASK, Done. (0.013s) image 25/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1873).jpg: 320x416 1 MASK, Done. (0.012s) image 26/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1900).jpg: 416x256 1 MASK, Done. (0.015s) image 27/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/masked (1904).jpg: 256x416 2 MASKs, Done. (0.012s) image 28/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1265).jpg: 416x320 1 NO MASK, Done. (0.012s) image 29/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1267).jpg: 416x384 1 NO MASK, Done. (0.024s) image 30/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1270).jpg: 416x416 1 NO MASK, Done. (0.012s) image 31/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1286).jpg: 416x320 1 NO MASK, Done. (0.012s) image 32/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1302).jpg: 416x416 1 NO MASK, Done. (0.012s) image 33/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1309).jpg: 416x320 1 NO MASK, Done. (0.012s) image 34/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1313).jpg: 416x416 1 NO MASK, Done. (0.012s) image 35/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1334).jpg: 416x320 1 NO MASK, Done. (0.012s) image 36/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1335).jpg: 416x320 1 NO MASK, Done. (0.011s) image 37/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1337).jpg: 416x384 1 NO MASK, Done. (0.016s) image 38/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1376).jpg: 416x320 1 NO MASK, Done. (0.012s) image 39/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1390).jpg: 416x320 1 NO MASK, Done. (0.010s) image 40/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1396).jpg: 320x416 1 NO MASK, Done. (0.013s) image 41/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1410).jpg: 416x320 1 NO MASK, Done. (0.012s) image 42/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1426).jpg: 416x416 1 NO MASK, Done. (0.016s) image 43/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1432).jpg: 416x320 1 NO MASK, Done. (0.012s) image 44/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1437).jpg: 416x320 1 NO MASK, Done. (0.011s) image 45/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1439).jpg: 416x320 1 NO MASK, Done. (0.011s) image 46/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1445).jpg: 416x320 1 NO MASK, Done. (0.010s) image 47/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1448).jpg: 352x416 1 NO MASK, Done. (0.015s) image 48/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1450).jpg: 416x288 1 NO MASK, Done. (0.012s) image 49/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1455).jpg: 416x384 1 NO MASK, Done. (0.015s) image 50/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1456).jpg: 416x352 1 NO MASK, Done. (0.012s) image 51/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1461).jpg: 416x320 1 NO MASK, Done. (0.016s) image 52/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1464).jpg: 416x320 1 NO MASK, Done. (0.010s) image 53/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1467).jpg: 416x320 1 NO MASK, Done. (0.010s) image 54/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1468).jpg: 416x320 1 NO MASK, Done. (0.011s) image 55/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1473).jpg: 416x352 1 NO MASK, Done. (0.012s) image 56/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1475).jpg: 416x416 1 NO MASK, Done. (0.012s) image 57/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1479).jpg: 416x416 1 NO MASK, Done. (0.014s) image 58/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1489).jpg: 416x384 1 NO MASK, Done. (0.013s) image 59/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1501).jpg: 416x288 1 NO MASK, Done. (0.012s) image 60/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1502).jpg: 256x416 1 NO MASK, Done. (0.012s) image 61/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1512).jpg: 416x320 1 NO MASK, Done. (0.012s) image 62/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1532).jpg: 416x320 1 NO MASK, Done. (0.011s) image 63/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1535).jpg: 416x320 1 NO MASK, Done. (0.010s) image 64/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1544).jpg: 416x416 1 NO MASK, Done. (0.014s) image 65/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1554).jpg: 416x352 1 NO MASK, Done. (0.021s) image 66/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1568).jpg: 416x320 1 NO MASK, Done. (0.012s) image 67/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1571).jpg: 416x416 1 NO MASK, Done. (0.012s) image 68/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1573).jpg: 416x320 1 NO MASK, Done. (0.013s) image 69/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1575).jpg: 416x320 1 NO MASK, Done. (0.016s) image 70/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1578).jpg: 416x384 1 NO MASK, Done. (0.015s) image 71/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1579).jpg: 416x320 1 NO MASK, Done. (0.012s) image 72/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1581).jpg: 416x320 1 NO MASK, Done. (0.011s) image 73/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1582).jpg: 416x320 1 NO MASK, Done. (0.011s) image 74/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1596).jpg: 416x416 1 NO MASK, Done. (0.012s) image 75/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1599).jpg: 416x320 1 NO MASK, Done. (0.013s) image 76/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1601).jpg: 416x320 1 NO MASK, Done. (0.011s) image 77/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1602).jpg: 416x320 1 NO MASK, Done. (0.012s) image 78/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1605).jpg: 416x352 1 NO MASK, Done. (0.012s) image 79/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1620).jpg: 416x384 1 NO MASK, Done. (0.014s) image 80/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1628).jpg: 416x352 1 NO MASK, Done. (0.013s) image 81/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1629).jpg: 416x352 1 NO MASK, Done. (0.011s) image 82/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1632).jpg: 288x416 1 NO MASK, Done. (0.012s) image 83/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1655).jpg: 416x320 1 NO MASK, Done. (0.012s) image 84/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1662).jpg: 416x288 1 NO MASK, Done. (0.012s) image 85/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1663).jpg: 416x320 1 NO MASK, Done. (0.012s) image 86/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1672).jpg: 416x352 1 NO MASK, Done. (0.012s) image 87/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1741).jpg: 416x320 1 NO MASK, Done. (0.016s) image 88/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1761).jpg: 416x320 1 NO MASK, Done. (0.012s) image 89/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1764).jpg: 416x320 1 NO MASK, Done. (0.011s) image 90/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1778).jpg: 416x320 1 NO MASK, Done. (0.011s) image 91/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1788).jpg: 416x320 1 NO MASK, Done. (0.010s) image 92/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1815).jpg: 416x320 1 NO MASK, Done. (0.010s) image 93/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1822).jpg: 416x320 1 NO MASK, Done. (0.012s) image 94/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/unmasked (1900).jpg: 416x320 1 NO MASK, Done. (0.011s) image 95/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/with_mask (19).jpg: 320x416 7 MASKs, 2 NO MASKs, Done. (0.014s) image 96/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/with_mask (52).jpg: 416x288 1 MASK, Done. (0.017s) image 97/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/with_mask (54).jpg: 416x320 2 MASKs, Done. (0.013s) image 98/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/with_mask (68).jpg: 288x416 10 MASKs, Done. (0.014s) image 99/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/with_mask (94).jpg: 256x416 9 MASKs, Done. (0.012s) image 100/100 /content/drive/My Drive/face_mask_detection/face_mask_data/test/with_maskb (15).jpg: 256x416 1 MASK, Done. (0.011s) Speed: 0.3ms pre-process, 12.9ms inference, 1.2ms NMS per image at shape (1, 3, 416, 416) Results saved to yolov5/runs/detect/exp
location=PROJECT_PATH+'/yolov5/runs/detect/exp/'
results=[]
for files in os.listdir(location):
if files.endswith(IMAGE_FILE_EXTENSION):
results.append(files)
print (len(results), " images found")
100 images found
print (results)
['132.jpg', '151.jpg', '157-with-mask.jpg', '170-with-mask.jpg', '293-with-mask.jpg', '294-with-mask.jpg', '334-with-mask.jpg', '348-with-mask.jpg', '377-with-mask.jpg', '382-with-mask.jpg', '433-with-mask.jpg', '443-with-mask.jpg', '444-with-mask.jpg', '57-with-mask.jpg', '73-with-mask.jpg', 'masked (1270).jpg', 'masked (1283).jpg', 'masked (1387).jpg', 'masked (1417).jpg', 'masked (1427).jpg', 'masked (1572).jpg', 'masked (1584).jpg', 'masked (1601).jpg', 'masked (1621).jpg', 'masked (1873).jpg', 'masked (1900).jpg', 'masked (1904).jpg', 'unmasked (1265).jpg', 'unmasked (1267).jpg', 'unmasked (1270).jpg', 'unmasked (1286).jpg', 'unmasked (1302).jpg', 'unmasked (1309).jpg', 'unmasked (1313).jpg', 'unmasked (1334).jpg', 'unmasked (1335).jpg', 'unmasked (1337).jpg', 'unmasked (1376).jpg', 'unmasked (1390).jpg', 'unmasked (1396).jpg', 'unmasked (1410).jpg', 'unmasked (1426).jpg', 'unmasked (1432).jpg', 'unmasked (1437).jpg', 'unmasked (1439).jpg', 'unmasked (1445).jpg', 'unmasked (1448).jpg', 'unmasked (1450).jpg', 'unmasked (1455).jpg', 'unmasked (1456).jpg', 'unmasked (1461).jpg', 'unmasked (1464).jpg', 'unmasked (1467).jpg', 'unmasked (1468).jpg', 'unmasked (1473).jpg', 'unmasked (1475).jpg', 'unmasked (1479).jpg', 'unmasked (1489).jpg', 'unmasked (1501).jpg', 'unmasked (1502).jpg', 'unmasked (1512).jpg', 'unmasked (1532).jpg', 'unmasked (1535).jpg', 'unmasked (1544).jpg', 'unmasked (1554).jpg', 'unmasked (1568).jpg', 'unmasked (1571).jpg', 'unmasked (1573).jpg', 'unmasked (1575).jpg', 'unmasked (1578).jpg', 'unmasked (1579).jpg', 'unmasked (1581).jpg', 'unmasked (1582).jpg', 'unmasked (1596).jpg', 'unmasked (1599).jpg', 'unmasked (1601).jpg', 'unmasked (1602).jpg', 'unmasked (1605).jpg', 'unmasked (1620).jpg', 'unmasked (1628).jpg', 'unmasked (1629).jpg', 'unmasked (1632).jpg', 'unmasked (1655).jpg', 'unmasked (1662).jpg', 'unmasked (1663).jpg', 'unmasked (1672).jpg', 'unmasked (1741).jpg', 'unmasked (1761).jpg', 'unmasked (1764).jpg', 'unmasked (1778).jpg', 'unmasked (1788).jpg', 'unmasked (1815).jpg', 'unmasked (1822).jpg', 'unmasked (1900).jpg', 'with_mask (19).jpg', 'with_mask (52).jpg', 'with_mask (54).jpg', 'with_mask (68).jpg', 'with_mask (94).jpg', 'with_maskb (15).jpg']
display_images(results, location=location, num_samples=5, resize=FIG_SIZE )
display_images(results, location=location, num_samples=5, resize=FIG_SIZE )
display_images(results, location=location, num_samples=5, resize=FIG_SIZE )
! jupyter nbconvert --to html face_mask_detection_model.ipynb